깃허브에는 여러 가지 강력한 장점들이 있다.
회사 컴퓨터에서 작업 하는 것을 집에서도 작업할 수 있으며, 깃허브의 원격 저장소를 이용하여 각각 다른 팀원이 프로젝트 파일에 접근할 수 있다.
이렇게 협업을 하기 위해서는 하나의 원격 저장소에 둘 이상의 지역 저장소가 연결되어야 한다.
원격 저장소 다중 연결 방법과 동기화 방법에 대해 공부해 보자.
서로 다른 컴퓨터에서 원격 저장소 함께 사용하기
원격 저장소 복제하기 - git clone
원격 저장소에 담긴 내용 전체를 지역 저장소로 가져오는 것을 '클론', '클로닝', '복제한다' 라고 한다.
앞선 글에서 깃허브에 test-1 저장소를 만들었는데, 이것을 PC 로 가져오는 예제이다.
1. 깃허브에서 test-1 을 선택, <>code 클릭, HTTPS:// 주소 복사
2. git clone 원격 저장소 주소 git_home
* 이미 만들어 놓은 지역 저장소로 복제하는 경우 해당 디렉터리로 이동한 후 git clone 명령 뒤에 . 마침표 붙여주기
3. git clone 원격 저장소 주소 git_office : git home, git office 두 군데에 원격 저장소에 복제됬음을 가정
4. ls -la : git_home, git_office 폴더 생성 확인
5. cd git_home
6. git log
7. cd ~/git_office
8. git log
9. git remote -v : 원격 저장소와 연결되어 있음을 확인
집에 있는 컴퓨터에서 작업해서 올리기
1. cd ~/git_home
2. vim f1.txt - c 추가
3. git commit -am "add C"
4. git push
5. github 들어가서 f1.txt 눌러서 c 업데이트 되었음을 확인
회사 컴퓨터에서 내려받아 작업하기
1. cd ~/git_office
2. git pull
3. vim f1.txt - c 가 있음을 확인, d 를 추가
4. git commit -am "add d"
5. git push
6. 깃허브 가서 f1.txt 에 d 가 있음을 확인
다시 집 컴퓨터에서 확인
1. cd ~/git_home
2. git pull
3. git logg
원격 브랜치 정보 가져오기
git pull 은 원격 저장소의 최신 커밋을 지역 저장소로 가져온다.
이 때 원격 저장소의 최신 커밋을 무조건 합치지 않고 원격 브랜치에서 어떤 변화가 있었는지 정보만 가져와서 필요한 커밋만 합칠 수도 있다.
원격 main 브랜치
1. cd ~/git_home
2. git log : 최종 커밋 add d 에서 HEAD -> main(지역 저장소의 최종 커밋), origin/main(원격 저장소의 최종 커밋), origin/HEAD 확인
3. git add f3.txt
4. git commit -m "create f3.txt"
5. git log --oneline : Head main 은 f3.txt 지만 원격 저장소의 origin 것들은 아직 add d 커밋을 가진다.
6. git status : origin/main 이 1commit 앞서 있다고 상태 메세지로 알려줌. git push 하라고 제시함.
7. git push
8. git log --oneline
원격 브랜치 정보 가져오기 - git fetch
fetch 패치는 불려오다, 가져오다는 뜻이다. 따라서 git fetch 는 원격 저장소의 정보를 가져오는 명령이다.
이 명령어를 사용하면 원격 저장소에서 수정한 내용을 가져와서 훑어본 후에 필요할 때만 지역 저장소에 합칠 수 있다.
1. cd ~/git_office
2. git fetch
3. ls -al : git_home 에서 원격 저장소로 푸시한 f3.txt 이 보이지 않는다.
4. git log --oneline : 로그 확인 시 원격 저장소의 origin/main 이 없다. 원격 저장소의 커밋 정보는 가져왔지만 아직 지역 저장소로 합치지 않았기 때문이다.
5. git status : git status 확인 시 현재의 브랜치가 원격 저장소 보다 1커밋 뒤쳐져 있다고 나온다.
6. git diff HEAD origin/main : 페치로 가져온 커밋의 정보를 확인
7. git merge origin/main
8. git log --oneline : f3.txt 가 생겨 있다.
* git pull 명령은 git fetch 와 git merge origin/ain 을 합쳐서 한꺼번에 할 수 있는 명령어인 것.
'Git & GitHub' 카테고리의 다른 글
깃허브에서 다른 사람과 소통하기 (1) | 2024.02.17 |
---|---|
깃허브로 협업하기 - 원격 저장소 공동작업 (0) | 2024.02.15 |
깃허브 시작하기 - 깃허브 가입, 원격 저장소 연결 및 동기화 (1) | 2024.02.10 |
깃 명령어 총정리 (0) | 2024.02.09 |
깃 브랜치 - 브랜치 병합하기 + 삭제하기 (0) | 2024.02.08 |
댓글