해당 내용은 생활코딩에서 공부한 내용을 복습하기 위해 다시 간단하게 정리한 글입니다.

더 자세한 건 생활코딩에서


git pull VS fetch & 원격 브랜치

git pull = git fetch + git merge FETCH_HEAD 

git fetch를 한 후

git fetch를 하고 나서도 orgin/master, origin/HEAD는 변경되었지만 HEAD -> master는 변경되지 않았다.

git pull을 하고 나면 HEAD -> master 도 변경된다.

git merge origin/master를 하고 난 후

git merge origin/master(FETCH_HEAD로 써도 됨)를 하고 나면 git pull을 한 상태와 동일해진다.

git fetch는 remote branch만 가져오는 방법이다.

 

신중하게 git의 데이터를 pull하고 싶을 때, 결합은 나중에 하고 일단 가져오고 싶을 때 사용한다.


patch

아무나 git pull은 할 수 있지만 git push는 할 수 없다.

하지만 수정한 내용을 전달하고 싶다면 git format-patch <작업하기 직전의 commit>을 하면 fatch 확장자를 가진파일이 생긴다.

해당 파일에는 누가 언제 무엇을 작업했는 지(수정했는 지) 적혀있다.

이 파일은 각 commit의 변경점이 저장되어있다.

 

권한이 있는 사람은 patch 파일을 받고 해당 내용을 병합할려면 git am -3 -i *.patch를 하면 새로운 버전으로 추가할 수 있다.

추가된 커밋 id는 달라진다.


pull request

pull request는 내가 작업한 내용을 pull 해달라고 요청하는 기능이다.

오픈소스 프로젝트에서 광범위하게 사용된다.

 

오픈소스 프로젝트를 folk하면 내 repository로 복사해올 수 있다.

거기서는 맘대로 수정하고 바꿀 수 있다.

내가 수정한 내용이 유용해서 오리지널인 오픈소스 프로젝트에 추가하고 싶으면 pull request를 한다.

오픈소스 프로젝트의 Pull requests탭에 추가되게 된다.

해당 request를 받으면 merge가 되게 된다.

'개발 > git' 카테고리의 다른 글

git 병합 충돌  (0) 2021.01.17
GIT Cherry-pick & rebase  (0) 2020.07.29
GIT Backup  (0) 2020.07.22
git Branch & Conflict  (0) 2020.07.10
git 버전관리  (0) 2020.07.06

+ Recent posts