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역!!)
$git add .
$git commit -m "comment"
$git push
위 명령어를 통해 clone_test2 라는 계정에서 "pull_test_newFile.jpg" 라는 새로운 파일을 업로드했습니다.
git pull
이제 clone_test1 라는 사람이 업데이트된 내용을 로컬로 받아오는 과정을 볼게요.
$git pull
위 명령어를 수행하면 원격 저장소로부터 변경된 내용을 받아와 병합을 수행합니다.
* git pull 명령어는 main 으로 지정된 Directory 에서 수행해야 한다. 그렇지 않으면 아래와 같은 Error 를 만나게 된다
Tips
로컬에서 수정한 파일을 원격저장소에 올리려면? git 명령어를 사용해 업로드하려면 선행 조건이 있어요. "권한을 얻는 것!"
Settings ➡️ Collaborators ➡️ passowrd 입력 ➡️ Add people 버튼 클릭 ➡️ 권한을 줄 계정입력
원격 저장소와 로컬 저장소의 싱크가 맞지 않다면? 예를 들어 Commit 의 수가 달라 로컬 저장소로 강제로 맞추고 싶다면 아래 명령어를 사용하면 됩니다. * 협업 시에는 문제가 발생할 수 있으므로 주의 (쓰지 말자!)