Git CLI 알아보기 (명령어)
- 개발자라면?/Git & GitHub
- 2022. 10. 14.
* 이 글은 '제주코딩베이스캠프(링크)' 의 알잘딱깔센 GitHub 무료 강좌(링크)를 참고해 작성했습니다.
git clone
역할과 사용법
원격 저장소 (GitHub)의 코드를 로컬 컴퓨터에 받아오고 싶다면??
git clone 명령어를 활용하면 됩니다.
아래 예시는 테스트를 위해 새로운 Directory 를 만들어서 진행하겠습니다!!
(Directory 생성, Diretory 이동 명령어도 같이 확인할 수 있어요)
$mkdir testFolder_clone $cd testFolder_clone $git clone git@github.com:kay0710/git_test.git .
설명
3줄로 끝이라니... 너무 간단하죠?
이제 과정에 대해 자세히 설명하겠습니다.
1. 다운받을 원격 저장소의 주소 복사하기
GitHub Repository 접속 ➡️ Code 클릭 ➡️ 주소 복사
2. Folder 만들고 다운받기
Git bash 실행 ➡️ Directory 생성 (mkdir <folder name>) ➡️ Directory 이동 (cd <folder name>) ➡️ git clone
Git bash 를 실행하고 clone 을 통해 받을 파일이 저장될 Directory를 만들어 줍니다.
clone 명령어를 실행시킬 Directory (위 단계에서 생성한) 로 이동해주고,
마지막으로 git clone 명령어 실행!!
Tip
* git clone 명령어의 마지막에 "." 의 역할은?
"." 을 입력하면 현재 Directory 에 원격 저장소의 내용물만 받아오고,
"." 을 입력하지 안으면 원격 저장소 전체를 받아옵니다
아래 스크린샷을 비교하면 이해하기 편해요. (폴더의 경로에 주목해주세요.)
git pull
역할과 사용법
git pull 명령어는 원격 저장소에 업데이트된 데이터를 가져와 병합할 때 사용해요.
명령어는 간단합니다.
$git pull
하지만 프로젝트 일반적으로 1명이 진행하지 않아요.
그래서 아래와 같은 문제가 발생할 수 있어요.
|-------------------------------- 시간 -----------------------------| Original 개발자 A ---- clone ------------ push 1 개발자 B ------------ clone ---------------- push2 >> Error 발생!!
A 와 B 는 모두 Original 을 Clone 받아 수정했습니다.
A 가 먼저 push 를 했지만, B 는 이를 모르고 Original 을 기반으로 수정을 더 진행합니다.
B 가 작업을 끝내고 push 를 하려하면???
A 가 작업한 내용과 충돌이 발생하게 되는 거죠!!
이를 해결하는 방법도 있겠죠?
1. 로컬 main 과 원격 main 을 서로 다른 Branch 로 보고 병합하는 방법
$git pull --no-rebase
2. 시간 순서대로 병합하는 방법$git pull --rebase
설명
git add, commit, push
이번 글에서는 git pull 을 위해 add, commit, push 를 진행했습니다.
add, commit, push 는 이전글 (Git commit 이해하기 (feat.명령어) (링크))에서 상세히 다뤘으니 참고해주세요!
pull 을 실행하기 전 원격 저장소에 새로운 파일을 업로드해보겠습니다.
* 명령어의 이해를 위해 Directory clone_test1 과 clone_test2 는 다른 계정이라고 가정할게요 (1인 2역!!)
위 명령어를 통해 clone_test2 라는 계정에서 "pull_test_newFile.jpg" 라는 새로운 파일을 업로드했습니다.$git add . $git commit -m "comment" $git push
git pull
이제 clone_test1 라는 사람이 업데이트된 내용을 로컬로 받아오는 과정을 볼게요.
$git pull
위 명령어를 수행하면 원격 저장소로부터 변경된 내용을 받아와 병합을 수행합니다.
* git pull 명령어는 main 으로 지정된 Directory 에서 수행해야 한다.
그렇지 않으면 아래와 같은 Error 를 만나게 된다
Tips
로컬에서 수정한 파일을 원격저장소에 올리려면?
git 명령어를 사용해 업로드하려면 선행 조건이 있어요.
"권한을 얻는 것!"
Settings ➡️ Collaborators ➡️ passowrd 입력 ➡️ Add people 버튼 클릭 ➡️ 권한을 줄 계정입력
원격 저장소와 로컬 저장소의 싱크가 맞지 않다면?
예를 들어 Commit 의 수가 달라 로컬 저장소로 강제로 맞추고 싶다면 아래 명령어를 사용하면 됩니다.
* 협업 시에는 문제가 발생할 수 있으므로 주의 (쓰지 말자!)
$git push --force
'개발자라면? > Git & GitHub' 카테고리의 다른 글
GitHub 사용하기 (feat. git CLI) (0) | 2022.10.13 |
---|---|
Git commit 이해하기 (feat. 명령어) (0) | 2022.09.24 |
Git 설치와 설정 (feat. 명령어) (0) | 2022.09.24 |
Git & GitHub 의 기본 개념 (0) | 2022.09.20 |
Git & GitHub 맛보기 (0) | 2022.09.20 |