17. Git/기초

04. 깃 (Git) - 깃 허브 (Git Hub) 로 협업하기

THE HEYDAZE 2020. 8. 22. 01:43
OS Windows 10 Home 64bit 버전 1903 (OS 빌드 18362.836)
Git git version 2.9.0.windows.1

 

# 개념

내가 개인 컴퓨터와 사무실 컴퓨터 일 때, 나와 팀원일 때, 원격 저장소를 이용하여 협업할 수 있다.

 

# 원격 저장소 복제하기

설명을 위해 2개의 로컬 저장소를 생성했을 뿐, 집 컴퓨터에는 git-home 저장소, 사무실 컴퓨터에는 git-office 저장소라고 생각해주세요

 

HTTPS 주소 복사하기

 

$ git clone HTTPS주소 디렉토리명 // 원격 저장소에서 해당 디렉토리에 복제 한다

원격 저장소의 commit 을 git-home 로컬 저장소에 복제한다

git-home 디렉토리가 없는 경우 자동으로 생성된다

 

원격 저장소의 commit 을 git-office 로컬 저장소에 복제한다

git-office 디렉토리가 없는 경우 자동으로 생성된다

 

git-home 로컬 저장소로 이동

 

commit 로그를 보니 정상적으로 복제가 된 것을 확인할 수 있다.

 

clone 으로 복제한 경우는 자동으로 원격 저장소와 연결을 해준다. 

 

개인 컴퓨터 (git-home) 에서 작업하고 올리기

work.txt 를 수정한다

 

git-home work 라고 내용을 추가 후 저장

 

add, commit, push

 

commits 를 눌러 commits 순으로 볼 수 있다

 

원격 저장소에 add git-home push 된 것을 볼 수있다.

 

현재 git-home 로컬 저장소에서 원격 저장소에 push 를 하여

git-office 로컬 저장소에는 git-home 이 push 한 add git-home 이 존재하지 않는다

git-office 는 작업을 하기 전에 원격 저장소에서 pull 받을 commit 들이 존재하는 지 먼저 확인해야한다

 

git-home 에서 git-office 로컬 저장소로 이동

 

$ git pull 을 이용해 git-home 에서 작업한 내용을 받는다

 

work.txt 를 확인해보니 git-home work 이라고 추가되어있다

 

git-office 에서 work.txt 수정하기

 

git-office work 입력 후 저장

 

add, commit, push
원격 저장소에 add git-office 가 추가된 것을 확인할 수 있다.

 

git-office 가 작성했던 내용을 git-home 에서도 받기 위해 다시 git-home 저장소로 이동한다

 

git pull

 

work.txt 를 봤더니 git-office 저장소에서 작성했던 내용이 추가된 것을 볼 수 있다

 

이러한 방식으로 원격 저장소를 통해서 git-home 의 로컬 저장소와 git-office 로컬 저장소가 협업할 수 있게 된다

 

원격 브랜치 정보 가져오기

원격 저장소에 있는 HEADorigin/master 브랜치를 가르킬 것이고,

origin/master 브랜치add git-office 라는 최종 커밋을 가리킨다

(여기서 origin/master 는 원격 저장소의 master 브랜치를 의미한다)

 

로컬 저장소에 있는 HEADmaster 브랜치를  가르킬 것이고,

master 브랜치 add git-office 를 가르킬 것이다.

 

git-home 로컬 저장소에서 새로운 커밋을 만들고 로그 찍어보기

여기에서는 새파일을 만드는 것이 중요하다 

work4.txt 생성

 

입력 후 저장

 

add, commit

 

로그 보기

push 를 하지 않았기 때문에 원격 저장소의 origin/master 브랜치는 'add git-office' 을 가르키고 있다

반면 로컬 저장소에서는 commit 을 했기 때문에 'create work 4' 커밋을 가르키고 최종 커밋이다

 

git status

status 를 보면 로컬 저장소의 브랜치가 원격 저장소 브랜치보다 1 commit 앞 서 있다고 말한다

그리고 push 명령을 사용하여 원격 저장소에 올리라고 말하고 있다

 

git push

 

원격 저장소에 올라간 것을 확인할 수 있다

 

push 를 함으로써 origin/master 와 origin/HEAD 가 최종 커밋을 가르키는 것을 알 수 있다

 

원격 브랜치 정보 가져오기

git-home 로컬 저장소에서 작업했던 내용은 git-office 에는 없기 때문에 git-office 에서 진행한다

 

git-office 로 이동

$ git fetch // 원격 저장소와 연결되어 있을 때 FETCH_HEAD 브랜치에 불러온다

git fetch 명령

 

로그 보기

로그를 보면 git-home 로컬 저장소에서 작업한 create work 4 최종커밋이 master 브랜치에 존재하지 않는다.

fetch 명령은 바로 합치는 것이 아닌 FETCH_HEAD 브랜치에 저장한 뒤, 확인 한 후에 합칠 때 사용한다

때문에 FETCH_HEAD 브랜치로 가면 create work 4 최종 커밋을 확인할 수 있다

 

FETCH_HEAD 브랜치로 변경

 

해석은 아래와 같다 (번역기)

'분리 된 HEAD'상태입니다. 주위를 둘러보고 실험 할 수 있습니다.
변경하고 커밋하고 여기에서 만든 커밋을 삭제할 수 있습니다.
다른 체크 아웃을 수행하여 분기에 영향을주지 않고

생성 한 커밋을 유지하기 위해 새 브랜치를 생성하려면
체크 아웃 명령과 함께 -b를 다시 사용하여이를 수행하십시오 (지금 또는 나중에). 예:

  git checkout -b <새 브랜치 이름>

HEAD는 이제 eec89c3에 있습니다 ... 작업 생성 4

 

FETCH_HEAD 에는 create work 4 최종 커밋이 존재하는 것을 확인 할 수 있다

 

fetch 로 한 경우에는 따로 merge 를 이용해서 합쳐주면 된다

master 브랜치로 이동

 

merge

 

merge 로 합쳤기 때문에 master 브랜치에서도 create work 4 최종커밋이 존재한다