Git Flow란 어떤 기능이 아니라 Vincent Drissen이 시작한 Git 사용 방법론이다.
Git Flow는 총 5가지의 브랜치를 사용해서 운영 한다.
fork는 다른 사람의 레포에서 내가 어떤 부분을 수정하거나 추가하고 싶을 때 해당 레포를 내 레포로 복제하는 기능이다. 그 레포지토리는 원본, 즉 다른 사람의 레포지토리와 연결되어 있다.
연결되어 있다는 것은 원본 레포에 변화가 생기면 그것 역시 그대로 반영할 수 있다.
반대로 내가 해당 레포에서 작업한 것을 원본 레포에 반영하고 싶다면 pr을 올리면 된다. 원본 레포의 관리자로부터 승인을 받으면 merge되어 반영된다.
fork는 '원격 레포 -> 내 원격 래포'였다면 clone은 '원격 레포 -> 로컬'이다. fork와 같이 원본 레포에 연결되어 있지 않다. 단순히 복사하는 기능인 셈이다.
pull은 원격 서버에서 변경된 사항들을 내려받아 로컬 브랜치와 자동으로 병합한다.
fetch는 변경된 사항들을 임시 브랜치로 내려받는다. 그러나 이후 자동으로 현재 브랜치와 병합하지 않는다. 내 브랜치에 적용하려면 merge해야한다.
단순히 변경 내용을 확인하고 싶거나 병합하기전 확인이 필요한 경우 사용하면 될 것 같다.
cherry-pick은 다른 브랜치에 있는 커밋을 선택적으로 현재 브랜치에 적용시킬 때 사용한다.
git cherry-pick <commit_hash_1> <commit_hash_2>... 여러개 한번에 가능
추가...