여러 컴퓨터에서 원격 저장소 함께 사용하기
git_home과 git_office라는 2개의 디렉토리를 만들어 깃 허브 협업을 연습해 보겠습니다.
원격 저장소 복제하기 - git clone
- 원격 저장소를 기존에 연결된 지역 저장소 외에 다른 지역 저장소에서 사용하려면 원격 저장소에 담긴 내용 전체를 지역 저장소로 가져와야 합니다.
- 원격 저장소를 지역 저장소로 똑같이 가져오는 것을 '복제한다'고 하거나 '클론(clone)','클로닝(cloing)'이라고 합니다.
1.깃허브에 있는 gitstartstudy저장소를 git_home이라는 저장소로 복제해 보겠습니다.
- [Clone or download]를 누른 후 'Clone with HTTPS'항목에 있는 아이콘을 눌러서 원격 저장소의 주소를 복사합니다.
2.터미널 창에서 git_home디렉토리와 git_office 디렉토리를 만들 위치로 이동합니다. 여기에서는 홈 디렉터리에 만들어 보겟습니다.
- git clone 다음에 복사한 소스를 붙여 넣고 복제할 디렉토리 이름을 입력하면 됩니다.
- 이때 git_home이라는 디렉토리가 없다면 자동으로 디렉토리가 만들어 집니다.
(원격 저장소를 현재 디렉토리에 복제하려면 git_home 대신 마침표를 입력하면 됩니다.)
$ git clone [복사한 주소 붙여 넣기]git_home
3.원격 저장소의 내용을 git_office 디렉토리에도 복제해보겟습니다.
- 개인 컴퓨터와 회사 컴퓨터 양쪽에 복제됐다고 생각해봅니다.
4.터미널 창에서 ls -al명령을 사용해 방금 만든 디렉토리를 확인합니다.
5.git_home 디렉토리와 git_office디렉토리에 같은 내용이 저장되어있느지 확인합니다.
- git log명령을 사용합니다.
6.이렇게 원격 저장소를 복제하면 자동으로 지역 저장소와 원격 저장소가 연결됩니다.
- git_home,git_office 디렉토리에서 git remote -v명령을 사용하면 연결이 되어있는지 확인할 수 있습니다.
개인 컴퓨터에서 작업하고 올리기
- 같은 원격 저장소를 복제한 2대의 컴퓨터 중에 한 곳에서 커밋을 만들고 푸쉬해 보겠습니다.
1.git_home 디렉토리에서 텍스트 문서를 열고 간단한 내용을 추가해 봅니다.
2.f1.txt파일을 스테이징하고 커밋하겠습니다. git commit명령에서 -am옵션을 사용하면 스테이징과 커밋을 한꺼번에 할 수 있습니다.
- 커밋메시지는 'add c'라고 지정했습니다.
- 그리고 git push 명령을 사용하여 커밋을 원격 저장소에 올립니다.
- 깃 허브의 원격 저장소로 접속하여 제대로 커밋이 올라왔는지 확인해 봅니다.
- 마지막으로 커밋한 'add c'라는 커밋이 올라와 있습니다.
- 이렇게 원격 저장소의 내용을 복제한 지역 저장소에서 내용을 수정하고 커밋한 후 다시 원격 저장소에 올렸습니다.
회사 컴퓨터에서 내려받아 작업하기
- 방금 전 개인 컴퓨터에서 커밋을 푸쉬했기 때문에 회사 컴퓨터에서 원격 저장소를 복제했을 때와 원격 저장소의 커밋 상황이 달라졌습니다. 따라서 회사 컴퓨터에서 작업하려면 먼저 원격 저장소에 올라온 커밋을 가져와야 합니다.
1.앞에서 복제 과정을 거쳤기 때문에 git_office의 master 브랜치는 origin에 이미 연결되어 있습니다.
- 터미널 창에서 git_office 디렉토리를 이동한 후 git pull 명령을 입력하면 앞에서 원격 저장소에 새로 올라온 커밋을 가져옵니다.
$ cd ~/git_office
//cd ~/git_office명령은 `cd ~` + `cd git_office`
//명령을 한꺼번에 처리한것입니다.
$ git pull
2.저장소에 있는 f1.txt파일을 수정하고 커밋을 만든후 푸쉬해줍니다.
3.다시 개인 컴퓨터(git_home)에서 작업할 때는 git pull 명령으로 원격 저장소에있는 최신 커밋을 가져와 작업을 시작합니다.
- git log 명령으로 확인해 보면 회사 컴퓨터(git_office)에서 푸쉬했던 'add d'라는 커밋이 개인 컴퓨터에도 들어와 있습니다.
원격 브랜치 정보 가져오기
- git pull 명령은 원격 저장소의 최신 커밋을 지역 저장소에 합쳐줍니다.
원격 master 브랜치
- 지역 저장소의 master 브랜치처럼 원격 저장소도 만들 때 기본으로 master브랜치가 생성됩니다.
- 이제부터 원격 저장소에 있는 브랜치는 '원격 브랜치'로, 원격 저장소에 있는 master브랜치는 '원격 master 브랜치'로 구별해서 부르도록 합니다.
1.터미널 창에서 git_home 디렉토리로 이동한 후 git log 명령으로 커밋상태를 확인합니다.
- 최종 커밋인 'add d'앞에 (HEAD -> master,origin/master,origin/HEAD)라고 표시되어 있습니다.
2.여기에서 HEAD -> master는 이 커밋이 지역 저장소의 최종 커밋이라는 뜻이고,origin/master는 원격 저장소의 최종 커밋이라는 뜻입니다. 아직 git_home 디렉토리가 원격 저장소를 복제한 상태 그대로이기 때문에 지역 저장소와 원격 저장소 모두의 최종 커밋이 같습니다.
3.git_home 디렉토리에 새로운 커밋을 만들어 보겠습니다.
- 빔을 사용해 f3.txt 파일을 만후 간단히 'a'라고 입력합니다.
4.f3.txt를 스테이지에 올린 후 커밋을 만듭니다. 커밋 메시지는 'create f3.txt'라고 해보겠습니다.
$ git add f3.txt
$ git commit -m "create f3.txt"
5.git log --oneline 명령을 사용해 커밋 로그를 한눈에 확인할 수 있습니다.
- (HEAD -> master)는 방금 커밋한 'create f3.txt'를 가리킵니다.
- 지역 저장소의 최종 커밋이 'create f3.txt'커밋이라는 뜻입니다.
-하지만(origin/master,origin/HEAD)는 아직 'add d'커밋을 가리키고 있습니다.
6.이상태에서 git status를 입력해봅니다.
- 현재 master 브랜치가 origin에 있는 원격 master 브랜치의 버전보다 하나 앞서 있는 것을 알 수 있습니다.
- 그리고 git push 명령으로 지역 저장소의 커밋을 원격 저장소로 올리라고 알려줍니다.
7.이제 git push 명령을 사용해서 'create f3.txt'라는 커밋을 원격 저장소로 올립니다.