728x90
반응형
질문 : Git에서 마스터 브랜치를 완전히 다른 브랜치에서 대체하는 방법은 무엇입니까?
내 Git 저장소에 두 개의 분기가 있습니다.
master
로 병합 할 의도로 seotweaks
를 만들었습니다. 그러나 그것은 3 개월 전이고이 브랜치의 코드는 master
보다 13 개 버전이 앞서 있습니다.
의 코드 모든 그것은 효과적으로 우리의 작업 마스터 지점이되었다 master
지금은 다소되지 않습니다.
내가 아는 아주 나쁜 연습, 교훈을 얻었습니다.
master
브랜치 seotweaks
에있는 콘텐츠로 대체 할 수있는 방법을 알고 있습니까?
master
에서 모든 것을 삭제하고 병합 할 수 있지만 이것이 모범 사례처럼 느껴지지 않습니다.
답변
"ours"병합 전략을 사용하여 마스터를 다음과 같이 seotweaks로 덮어 쓸 수 있어야합니다.
git checkout seotweaks
git merge -s ours master
git checkout master
git merge seotweaks
결과는 당신의 주인이 이제 본질적으로 섭약합니다.
( -s ours
--strategy=ours
약자입니다)
'우리의'전략에 대한 문서 에서 :
이것은 수에 상관없이 헤드를 해결하지만 병합의 결과 트리는 항상 현재 분기 헤드의 트리이며 다른 모든 분기의 모든 변경 사항을 효과적으로 무시합니다. 사이드 브랜치의 오래된 개발 역사를 대체하는 데 사용됩니다. 이것은 재귀 병합 전략에 대한 -Xours 옵션과 다릅니다.
주석 업데이트 : 치명적일 경우 : refusing to merge unrelated histories
, 두 번째 줄을 다음과 같이 변경합니다. git merge --allow-unrelated-histories -s ours master
출처 : https://stackoverflow.com/questions/2862590/how-to-replace-master-branch-in-git-entirely-from-another-branch
728x90
반응형
'개발관련 > Git' 카테고리의 다른 글
로컬 Git 변경 사항을 제거하는 다양한 방법 (0) | 2022.01.06 |
---|---|
Git에서 쉘 명령을 실행할 때 사용할 개인 SSH 키를 지정하는 방법 (0) | 2022.01.06 |
GitHub에서 직접 npm 패키지를 설치하는 방법 (0) | 2021.12.29 |
체크 아웃을 사용하지 않고 Git 브랜치를 병합, 업데이트 및 가져 오기 (0) | 2021.12.29 |
Git blame -- prior commits (0) | 2021.12.29 |