마스터와 GIT 덮어 쓰기 지점


33

완전히 오래된 구식 개발 지점이 있습니다. 제거하고 싶지 않지만 그 내용을 마스터 브랜치로 완전히 바꾸고 싶습니다. 의미, 나는 dev_branch = master를 원한다

나는 시도했다 :

git merge -s ours dev_branch

그래도 작동하지 않았습니다 ...

답변:


54

당신은 모든 변경하려는 경우 masterdev_branch다음을 :

git checkout dev_branch
git reset --hard master

다른 사람들이 저장소를 복제하지 않은 경우에만 작동합니다.

dev_branch이미 리모컨 을 누른 경우 다음 을 수행해야합니다.

git push --force

리모컨을 강제로 누릅니다. 경고 : 이렇게하면 이전에 복제 한 사람들의 분기 기록이 손상됩니다. 그런 다음, 다른 사람은해야 할 것 git pull --rebase상의를 dev_branch변경 내용을 얻을 수 있습니다.


dev 브랜치의 이름을 오래된 것으로 바꾸고 master같은 이름 으로 새 브랜치를 만들 수도 있습니다 .

git branch -m dev_branch old_dev_branch
git branch -m master dev_branch

또는 ours왜 전략이 효과가 없는지 확실하지 않은 전략을 사용 하십시오.

git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master

이름 바꾸기 솔루션을 사용하면 이제 dev_branch원점으로 푸시 할 수 없으며 master로컬 에 지점 이 더 이상 없을 것 입니다.
aidan

감사합니다 @slhck! 어떤 이유로 정상적인 병합을 수행 한 후 스테이지 분기가 업데이트되지 않았습니다. 내 무대 지점은 최신이라고 계속 말 했어요. "우리"전략을 사용하면이 문제가 해결되었습니다.
Slick Shinobi

우리는 갈등 청크에만 영향을 주지만 갈등뿐만 아니라 지점을 완전히 갱신하고 싶습니다! (적어도 내가해야 할 일 이며이 Q를 찾은 이유입니다)-이름을 바꿉니다!
마틴 Meeser
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.