Ch 15. 지역 저장소와 원격 저장소 동기화하기

처음으로 원격 저장소에 커밋 올리기

 

먼저 지역 저장소의 커밋을 원격 저장소로 보내는 푸시 방법을 알아보겠습니다.

 

1. 지역 저장소 디렉터리에서 터미널 창에 아래와 같이 입력합니다. 지역 저장소의 브랜치를 origin(원격 저장소)의 main 브랜치로 푸시하라는 명령입니다. 여기에서 -u 옵션은 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결하기 위한 것으로 처음에 한 번만 사용하면 됩니다. 이후에는 -u 옵션이나 main 브랜치 이름없이 간단히 푸시할 수 있습니다.

 

$ git push -u origin main

 

2. 처음으로 원격 저장소에 푸시할 때는 깃허브 로그인 창이 나타납니다. [Authorize GitCredential Manager]를 클릭하고 깃허브 계정의 비밀번호를 입력하면 됩니다.

사용자 인증이 끝나는 것과 동시에 터미널 창에서는 푸시가 진행됩니다. 푸시가 끝나면 프롬포트($)가 나타납니다. 

 

 

3. 푸시가 끝났다는 것은 지역 저장소의 커밋이 원격 저장소로 올라갔다는 뜻입니다. 푸시가 끝났으면 깃허브 저장소가 열려있는 웹 브라우저 창으로 돌아와 F5를 눌러 새로고침 합니다. 지역 저장소에 있던 f1.txt 파일이 원격 저장소에 올라와 있을 것입니다. 저장소의 파일 목록에는 파일 이름과 함께 커밋 메시지도 나타납니다. 

파일 목록 오른쪽 위에 있는 [1 commit]을 클릭해보세요. 

 

 

4. 커밋한 날짜와 사람, 메시지 등을 볼 수 있습니다. 

 

 


원격 저장소에 파일 올리기 - git push

 

1. 지역 저장소에서 또 다른 커밋을 만들고 다시 푸시해보겠습니다. 빔으로 f1.txt을 다시 열고 원래 내용 다음 줄에 'b'를 추가하고 저장합니다. 

 

$ vim f1.txt

 

2. 다음 명령을 사용해 스테이징과 커밋을 한꺼번에 실행합니다. git commit 명령에서 -am은 스테이징 옵션(-a)과 메시지 옵션(-m)을 함께 쓴 것으로, 최소한 한 번이라도 커밋한 파일이어야 사용할 수 있습니다. 커밋 메시지는 'add b'라고 하겠습니다. 

 

$ git commit -am "add b"

 

 

3. 지역 저장소에 새로운 커밋이 만들어졌으니 원격 저장소로 푸시합니다. 

 

$ git push

 

4. 방금 만든 커밋이 깃허브의 원격 저장소로 푸시됩니다. 

 

 

5. 웹 브라우저에서 깃허브 저장소 화면을 새로고침합니다. f1.txt 파일을 수정한 것이기 때문에 파일 복록에 계속 f1.txt 파일만 보일 것입니다. 파일 목록 위를 보면 1 commit 이었던 것이 2 commits으로 바뀌었습니다. 

[2 commits]을 클릭합니다. 

 

 

 

6. 조금 전에 푸시한 add b 커밋이 올라온 것을 볼 수 있습니다. add b 커밋이 어떤 걸 변경한 것인지 궁금하다면 커밋 이름 오른쪽에 있는 커밋 해시를 클릭합니다. 

 

 

7. 하나의 파일이 변경됐고, 추가된 것은 하나, 삭제된 것은 없다고 표시됩니다. 그리고 아래를 보면 초록색이 추가된 부분이 있는데 파일에 b가 추가되었다는 뜻으로 '+b'라고 되어있습니다. 

 

 


원격 저장소에서 직접 커밋하기

 

1. 앞에서 커밋을 푸시한 원격 저장소로 접속합니다. 앞에서 푸시한 f1.txt 파일이 있습니다. 여기에 새로운 파일을 추가합니다. 파일 목록 위에 있는 [Add file]을 클릭한 후 [Create new file]을 선택합니다. 

 

 

2. 맨 위에 파일 이름을 입력한 후 내용을 작성합니다. 여기에서는 파일 이름을 f2.txt로 하고, 내용에는 숫자 1,2,3을 입력했습니다. 

 

 

3. 파일 내용을 입력했다면 Commit changes를 클릭합니다. 기본적인 커밋 메시지(Create f2.txt)가 입력되어있습니다. 이 메시지를 그냥 사용하거나 원하는 내용으로 수정한 후 [Commit new file]을 클릭합니다. 

 

 

4. 원격 저장소에 새로운 커밋이 추가되었습니다.

 

 


원격 저장소에서 커밋 내려받기 - git pull

 

원격 저장소에 있는 소스 파일을 다른 사용자가 수정하거나 깃허브 사이트에서 직접 커밋하면 지역 저장소와 버전 차이가 생깁니다. 이럴 때는 원격 저장소와 지역 저장소의 상태를 같게 만들기 위해 원격 저장소의 커밋을 지역 저장소로 가져옵니다. 이것을 풀(pull)한다고 합니다. 

 

1. 앞에서 loc-git 지역 저장소를 원격 저장소에 연결한 후 푸시했습니다. 깃허브 사이트에서 직접 f2.txt라는 파일을 새로 만들었습니다. 그러므로 loc-git 지역 저장소에는 아직 f2.txt 파일이 없습니다. 터미널 창에서 loc-git 디렉터리로 이동한 후 ls 명령을 사용해 디렉터리 안의 내용을 확인해봅니다. 지역 저장소에서 만든 f1.txt 파일만 있을 것입니다. 

 

$ ls

 

2. 원격 저장소에서 커밋을 풀할 때는 git pull 명령을 사용합니다. 그리고 그 뒤에 원격 저장소 이름과 지역 저장소의 브랜치 이름을 넣어줍니다. 여기에선 origin(원격 저장소)을 지역 저장소의 main 브랜치로 가져오라고 하겠습니다. 터미널 창에 아래와 같이 입력합니다. 

 

$ git pull origin main

 

3. 원격 저장소에서 소스 파일을 가져오는 과정이 화면에 나타납니다. $가 화면에 표시되면 가져오기가 끝난겁니다.

 

 

4. git log 명령으로 커밋 로그를 확인합니다. 깃허브 사이트에서 만들었던 커밋이 지역 저장소 커밋 로그에도 나타나는 것을 확인할 수 있습니다. 그리고 커밋 해시 오른쪽을 보면 (HEAD -> main)외에 origin/main도 있을 것입니다. 원격 저장소의 최신 커밋이라는 뜻입니다. 

 

 

 

 

이 글은 Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 책을 보며 공부한 글입니다.