Git 저장소의 마스터에 대해 오래된 분기 업데이트


123

구식이 된 분기 (로컬 및 원격)가있는 Git 저장소가 있습니다. 마스터 브랜치와 함께이 브랜치를 최신 상태로 유지하고 싶지만 어떻게해야할지 모르겠습니다. 또한 많은 병합 충돌이있을 수 있습니다.

이 오래된 분기를 마스터 분기와 동일한 상태로 가져 오거나 업데이트하려면 어떻게해야합니까?


1
당신은 당신이 로컬 지점에서 변경 한 havent 한 경우 힘내의 repo에 마스터에 대한 오래된 지점을 업데이트하는 방법을 알아 보려면 여기 온 경우 다음 단순히 "자식 풀"할
초라한

답변:


152

상관없이 수행해야하는 마스터 분기를 업데이트하십시오.

다음 중 하나 :

  1. 마스터 브랜치에 대해 이전 브랜치를 리베이스하십시오. 리베이스 중에 병합 충돌을 해결하면 결과는 마스터에 대해 완전히 병합되는 최신 분기가됩니다.

  2. 분기를 마스터에 병합하고 병합 충돌을 해결하십시오.

  3. 마스터를 브랜치에 병합하고 병합 충돌을 해결하십시오. 그런 다음 브랜치에서 마스터로 병합하는 것이 깨끗해야합니다.

이것들 중 어느 것도 다른 것보다 낫지 않으며 단지 다른 절충 패턴을 가지고 있습니다.

나는 나중에 독자들에게 더 깨끗한 전체 결과를 제공하는 리베이스 접근 방식을 사용할 것입니다. 그러나 그것은 개인적인 취향을 제외하고는 아무것도 아닙니다.

분기를 리베이스하고 유지하려면 다음을 수행하십시오.

git checkout <branch> && git rebase <target>

귀하의 경우에는 이전 지점을 확인한 다음

git rebase master 

마스터를 상대로 재건됩니다.


1
git rebase
@Andrew

1
git checkout $branch && git rebase $target-귀하의 경우에는 이전 지점을 확인한 다음 git rebase mastermaster에 대해 다시 빌드하십시오.
Daniel Pittman

3
저장소가 공개되어 있습니까? 공개 된 경우 리베이스해도 괜찮습니까?
event_jr

4
원격 브랜치에서 리베이스를 사용할 때 좋은 조언 : 원격 브랜치에서 커밋을 푸시하지 않는 경우에만 마스터 브랜치에 대해 원격 브랜치를 리베이스하십시오.
Dherik 2015 년

리베이스가 완료되면 -f옵션을 사용하여 변경 사항을 푸시해야합니다 . 히스토리를 다시 쓸 때 강력한 푸시가 필요합니다.
Opster Elasticsearch Ninja
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.