깃 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
- 자신이 작업하는 사항은 master branch가 아닌 다른 branch에서 작업한다.
- 작업 후 master branch에 병합할 때는 merge보다 rebase를 사용하는 것이 좋다.
- 최종적으로 push를 하고 나서 push를 한 원격 저장소에서 compare&pull request를 한다.
- 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 협업 프로세스
- PR을 통한 Git Hub 협업 프로세스: https://brunch.co.kr/@anonymdevoo/9
- Pull request(=PR)
- https://abled.tistory.com/36
- Git Hub 협업 프로세스 순서: https://seungwubaek.github.io/tools/git/contributing_using_pull_request/https://medium.com/hcleedev/dev-git을-활용한-협업의-기초-3145d5380ed3
- Fork→Clone→Local Repository에 Upstream Repository 등록→ Branch→Add→ Commit→ Push→ Fetch→Solve Conflicts→Commit→Push→Pull Request→Merge
- https://breakout-theworld.tistory.com/55
- push, pull, branch: https://19970225.tistory.com/47
—> 각자 branch를 만들어서 원격 저장소를 clone해온 뒤, 로컬에서 작업하고 작업한 내용을 push 한 다음, fetch를 하고, 충돌 부분이 생긴다면 pull을 해서 충돌을 해결 한 뒤, 다시 push를 하고, pull request 이후 최종 검수자가 확인 후 merge를 한다.
'Git' 카테고리의 다른 글
Git Branch를 이용해서 협업 하는 방법 (0) | 2022.01.26 |
---|
댓글