본문 바로가기

개발 이야기/Git

Git 요약 4. 리모트 저장소(Remote Repository)

반응형
리모트 저장소
  • git remote 이 명령은 리모트 저장소의 단축이름을 보여준다
    • 저장소를 Clone 하면 origin이라는 리모트 저장소가 자동으로 등록되기 때문에 origin이라는 이름을 볼 수 있다.
    • git remote -v -> 단축이름과 URL을 함께 볼 수 있다.
    • 리모트 저장소가 여러 개 있다면 이 명령은 등록된 전부를 보여준다.
    • 리모트 저장소가 여러 개 등록되어 있으면 다른 사람이 기여한 내용(Contributions)을 쉽게 가져올 수 있다.
  • git remote add [단축이름] [url] -> remote repository 추가, [단축이름]을 적으면 origin이 아닌 다른 이름으로 저장됨.
  • git remote show [remote_name]
    • 리모트 저장소의 구체적인 정보를 확인
    • git pull 명령을 실행할 때 master 브랜치와 Merge할 브랜치가 무엇인지 보여 준다.
    • git push할 때 브랜치마다 원격저장소와 비교해 어떤 상태인지 보여 준다. 
      • up to date -> 최신 상태
      • local out of date -> Working directory가 뒤쳐짐
      • fast-forwardable -> Working directory가 앞서감
  • git remote rename [remote_name] [new name] 이름을 변경
  • git remote rm [remote_name] or git remote remove [remote_name] -> remote 삭제
    • 서버 정보가 바뀌었을 때,
    • 더는 별도의 미러가 필요하지 않을 때,
      • Mirror
        • 1. 외부 저장소를 참고할 때
        • 2. 똑 같은 프로그램을 여러 곳에 적용할 때
        • 외부 저장소를 통채로 복사 (remote branches, notes 포함)
        • 자동으로 update 설정 가능
        • git clone --mirror origin-url
    • 더는 기여자가 활동하지 않을 때 필요하다.
  • git fetch [remote-name] 
    • 로컬에는 없지만, 리모트 저장소에는 있는 데이터를 모두 가져온다.
    • 그러면 리모트 저장소의 모든 브랜치를 로컬에서 접근할 수 있어서
    • 언제든지 Merge를 하거나
    • checkout해서 내용을 살펴볼 수 있다.
    • 자동으로 Merge 하지 않는다. 그래서 로컬에서 하던 작업을 정리하고 나서 수동으로 Merge 해야 한다.
  • git pull [branch-name]
    • 리모트 저장소 브랜치에서 데이터를 가져올 뿐만 아니라 자동으로 로컬 브랜치와 Merge시킬 수 있다
    • 먼저 git clone 명령은 자동으로 로컬의 master 브랜치가 리모트 저장소의 master 브랜치를 추적하도록 한다(물론 리모트 저장소에 master 브랜치가 있다는 가정에서).
    • 그리고 git pull 명령은 Clone 한 서버에서 데이터를 가져오고 그 데이터를 자동으로 현재 작업하는 코드와 Merge
      시킨다.
  • git push [remote-name]  [branch-name]
    • 이 명령은 Clone 한 리모트 저장소에 쓰기 권한이 있고,
    • Clone 하고 난 이후 아무도 Upstream 저장소에 Push 하지않았을 때만 사용할 수 있다.
    • 다시 말해서 Clone 한 사람이 여러 명 있을 때, 다른 사람이 Push 한 후에 Push 하려고 하면 Push 할 수 없다.
    • 먼저 다른 사람이 작업한 것을 가져와서 Merge 한 후에 Push 할 수 있다.


반응형