본문 바로가기
Git

협업을 위한 Git push, clone, pull, merge

by Rudy 2022. 1. 25.

깃 pull, fetch의 차이: https://devlog-wjdrbs96.tistory.com/236

깃 튜토리얼: https://backlog.com/git-tutorial/kr/intro/intro4_3.html

깃 pull, merge, rebase의 차이: https://unordinarydays.tistory.com/161

 

[Git] pull, merge, rebase 차이 및 옵션

Scenario 최근 git cli를 사용하려고 노력중이다보니, Source tree를 사용하지 않고 직접 cmd를 치다보면 merge를 해야할지 rebase를 해야할지, 헷갈리때가 있다. 또한 옵션에 대해서도 잘 모르고 써었는데

unordinarydays.tistory.com

 

Push


git add .
git commit -m "커밋 메시지"
git push
  • push와 fetch의 차이
    • push= 로컬→원격
    • fetch= 원격→로컬
  • 로컬 저장소에서 변경된 이력과 파일을 원격 저장소에 업로드하기 위한 작업. 로컬 저장소의 변경 이력을 원격 저장소에 업로드 해야 한다. Push를 실행하면 원격 저장소와 로컬 저장소가 동일한 상태가 된다.

 

 

Clone


git clone [깃 주소] 

깃주소는 보통 주소창에 나와 있는 주소를 긁어온 뒤, 마지막에 .git을 붙이면 된다.

  • 누군가의 변경 이력이 적용된 원격 저장소가 있으면 웹에서 모두 복제해와서 내 로컬(PC)에서 작업할 수 있게 된다. 즉, 원격 저장소를 복제하기 위한 작업. 이때, 변경 이력도 함께 복제되기 때문에 원래 원격 저장소와 똑같이 이력을 참조하고 커밋을 진행할 수 있게 된다.
  • Pull
    • 콘솔로 작업할 때, push나 pull 명령어 실행 시 원격 저장소명을 생략하면 자동으로 origin 이라는 이름으로 생성되기 때문에 일반적으로 원격 저장소에는 origin 이라는 이름을 붙이게 된다.
    • 원격 저장소와 로컬 저장소의 변경 이력이 다르다면 Git push를 하기전에 Git Pull을 해서 변경 이력을 동일하게 맞춰준 뒤에 push를 진행해야 한다.
    git add .
    git commit -m "커밋 메시지"
    git pull 
    git push
    
    • git pull=git fetch+git merge
  • 원격 저장소를 공유하고 다른 사람과 협업을 하게 되면 같은 원격 저장소에서 Push 작업을 하게 된다. 그러면 다른 사람이 원격 저장소에 Push 해둔 변경 내용을 내 로컬 저장소에도 적용해야 한다. 그때 사용하게 되는 작업. 원격 저장소에서 최신 변경 이력을 다운로드해서 내 로컬 저장소에 그 내용을 적용하게 된다.

 

Merge


  • branch의 최종 결과 만을 가지고 합친다. 이해하기 쉽고, 사용하기 쉽지만 history가 복잡해진다.
  • merge와 rebase의 차이: https://firework-ham.tistory.com/12
  • 여러 명의 개발자가 같이 협업을 할 때 git history를 깔끔하게 사용하기 위해 rebase를 사용한다.
  • 다른 사람이 push를 해서 원격 저장소를 업데이트 한 경우, merge를 실행해서 다른 사람의 업데이트 이력을 내 저장소에도 갱신해야 한다. merge를 하면 git이 현재 branch에 변경 사항을 자동으로 통합해준다.
  • git 실무 프로세스: https://jae04099.tistory.com/entry/Git-협업-처음-해보는-사람이-느낀-실무-협업-프로세스merge-말고-rebase
    1. 자신이 작업하는 사항은 master branch가 아닌 다른 branch에서 작업한다.
    2. 작업 후 master branch에 병합할 때는 merge보다 rebase를 사용하는 것이 좋다.
    3. 최종적으로 push를 하고 나서 push를 한 원격 저장소에서 compare&pull request를 한다.
    4. merge를 하고나면 작업했던 branch를 삭제하고 다시 새 branch를 만들어서 작업한다.
    • rebase 하는 법
    git add [파일 1]
    git commit -m "첫 번째 커밋"
    git add [파일 2]
    git commit -m "두 번째 커밋"
    git add [파일 3]
    git commit -m "세 번째 커밋"
    // 가장 최근에 진행한 커밋을 포함 3개의 커밋을 rebase
    git rebase -i HEAD~3
    

Git 협업 프로세스


—> 각자 branch를 만들어서 원격 저장소를 clone해온 뒤, 로컬에서 작업하고 작업한 내용을 push 한 다음, fetch를 하고, 충돌 부분이 생긴다면 pull을 해서 충돌을 해결 한 뒤, 다시 push를 하고, pull request 이후 최종 검수자가 확인 후 merge를 한다.

'Git' 카테고리의 다른 글

Git Branch를 이용해서 협업 하는 방법  (0) 2022.01.26

댓글