병합 된 분기를 삭제하는 것이 가장 좋은 지 여부는 분기가 워크 플로에 어떤 의미를 갖는지에 따라 다릅니다. 릴리스가 준비되면 마스터에 병합되는 새 릴리스를 준비하는 데 사용되는 지점 인 경우에는 계속 유지해야합니다. 단일 기능을 개발하는 데 쓸모없는 지사 인 경우 일반적으로 지우는 것이 좋습니다. 수십 개의 완료된 분기가있는 git branch
출력을 혼란스럽게 만들지 않아야합니다.
나중에 삭제 된 분기를 다시 만들려면 마지막 커밋에 해당하는 SHA를 찾아야합니다. 당신은 reflog를 편리하게 가지고 있지 않다면 이것을 git log
으로 찾아야 할 것입니다. 당신이 병합 커밋 찾을 후에는 목록에 두 부모를 볼 수 있습니다,
# This should match the message of the merge commit, if you kept the default.
git log --grep=branch-name
:
commit 38bf1d168e73f9fa708c334e50f256578d5c2d8f
Merge: a08b280 d7725b0
첫 번째 부모를이 작업을 수행하는 가장 쉬운 방법은 병합을 검색 같은 것을 확약하는 것 병합 전에 master
의 상태입니다. 두 번째는 병합 된 지점의 상태이며, 이는 사용자가 원하는 것입니다. 거기 분기를 다시 작성하고 그것을 체크 아웃 : 병합이 빨리 감기 병합 아니었다 경우 (!) 참고로
git checkout -b branch-name d7725b0
,이 경우에만 작동합니다. 빨리 감기 병합은 병합중인 참조까지 HEAD
까지 압축하므로 병합 커밋을 생성하지 않습니다. 당신은 사용하여 병합 할 때 커밋 항상 새를 만들기 위해 자식을 강제 할 수
git config branch.master.mergeoptions "--no-ff"
I :
을 그리고 당신은 항상이 당신이 당신의 설정에서 설정 할 수있는 경우가하려는 경우 빨리 감기 병합은 병합중인 분기가 시작된 이후에 변경된 사항이 없다면 발생합니다. – KyleL
수정하십시오. 발생하면 "병합"출력의 메모가 표시됩니다. 자세한 설명은 다음과 같습니다. http://ariya.ofilabs.com/2013/09/fast-forward-git-merge.html –