병합 후 분기로 수행 할 작업


답변:


410

병합 후에는 브랜치를 삭제하는 것이 안전합니다.

git branch -d branch1

또한 git은 아직 완전히 병합하지 않았다고 생각하면 경고를 보내고 분기 삭제를 거부합니다. git branch -D아직 완전히 병합되지 않은 분기 (with ) 를 강제로 삭제하면 병합되지 않은 커밋을 다시 가져 오기 위해 몇 가지 트릭을 수행해야합니다 (아래 참조).

그래도 지점을 유지 해야하는 몇 가지 이유가 있습니다. 예를 들어, 기능 분기 인 경우 해당 분기 내에서 해당 기능에 대한 버그 수정을 수행 할 수 있습니다.

원격 호스트에서 분기를 삭제하려는 경우 다음을 수행 할 수 있습니다.

git push origin :branch1

이렇게하면 원격에서 분기가 강제로 삭제됩니다 (이미 체크 아웃 된 리포지토리에는 영향을 미치지 않으며 푸시 액세스 권한을 가진 사람이 다시 푸시 / 생성 할 수는 없습니다).


git reflog최근 체크 아웃 한 개정을 표시합니다. 최근 리포지토리 기록에서 체크 아웃 한 지점도 여기에 표시됩니다. 그 외에도 git fsckgit의 커밋 손실이있는 경우 선택 도구가 될 것입니다.


브랜치를 저장하려면 삭제하기 전에 태그를 생성 할 수 있습니다. 해당 지점으로 돌아가려면 해당 태그를 체크 아웃 할 수 있습니다.
Joqus

3
@Joqus 나는 그 경우에 그것을 지점으로 유지하는 것이 좋습니다. 게시하지 마십시오.
조나스 셰퍼

경우에 따라-삭제하기 전에 분기를 "완전히 병합"하려면 병합 후 삭제하기 전에 해당 분기를 누르십시오. 같은 것git checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
avtomaton

25

DELETE 보다는 RENAME을 선호합니다

내 모든 지부의 이름은

  • Fix/fix-<somedescription> 또는
  • Ftr/ftr-<somedescription> 또는
  • 기타

내 자식 프론트 엔드로 타워를 사용하면, 깔끔하게 모든 조직 Ftr/, Fix/, Test/폴더로 등.
나는 지점으로 수행하고 나면, 나는 이름을 변경 에게 Done/...-<description>.

그렇게하면 그들은 여전히 ​​거기에 있습니다 (역사를 제공하는 것이 편리 할 수 ​​있음). 나는 그것이 무엇인지 (기능, 수정, 테스트 등) 알고 다시 돌아갈 수 있습니다.


4
원격 지점의 이름도 바꾸나요?
VitalyB 2016 년

22
이러한 브랜치 를 유지 하고 이름바꾸는 것은 미친 듯 합니다. 여기에 뭔가 빠졌습니까? 언제든지 브랜치를 다시 만들 수 있습니다. stackoverflow.com/questions/3640764/…
ksav

그들은 합병 후 지점을 유지하기 위해 이해되지 않는다
rastaman

2
수정, 테스트 및 완료로 이름을 바꾸는 아이디어는 +1입니다. 지점 유지는 계약자가 회사에 지불하는 방식입니다.
jpfreire 2018 년

1

계속 진행하고 분기를 병합 한 후 삭제하십시오. DELETED 브랜치

모든 하이퍼 링크 URL 참조를 처리하십시오 . BROKEN이 됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.