Git & GitHub

깃허브로 협업하기 - 원격 저장소 함께 사용하기

Player-Hyeok 2024. 2. 12.

깃허브에는 여러 가지 강력한 장점들이 있다.

회사 컴퓨터에서 작업 하는 것을 집에서도 작업할 수 있으며, 깃허브의 원격 저장소를 이용하여 각각 다른 팀원이 프로젝트 파일에 접근할 수 있다. 

이렇게 협업을 하기 위해서는 하나의 원격 저장소에 둘 이상의 지역 저장소가 연결되어야 한다.

원격 저장소 다중 연결 방법과 동기화 방법에 대해 공부해 보자.

 

서로 다른 컴퓨터에서 원격 저장소 함께 사용하기

원격 저장소 복제하기 - 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 을 합쳐서 한꺼번에 할 수 있는 명령어인 것.

 

 

 

댓글

💲 추천