2011-12-21 5 views
0

나는 master 브랜치에서 일하고있었습니다. 나는 새로운 지점을 만든 다음내 경우에 되돌리기 변경

git push origin master 

, 그리고에 최신 코드를 밀어 :

나는 다음 & 에 의해 원격 저장소에 모든 변경 사항을 밀어 커밋, 내 프로젝트에 많은 변화를 만들었습니다 새로운 지점은 다음과 같이합니다 (원격 지점 만들려면) :

git branch new-branch 
git checkout new-branch 
git push origin new-branch 

내가 new-branch 지금입니다. 자, master & new-branch은 모두 동일한 최신 코드 을 가지고 있습니다. & 리모컨입니다.

내 질문은 :

내가 로컬 및 원격 마스터 분기에 다시에게 변화을 되돌릴 수있는 방법. 그러나 모든 변경 사항은new-branch에만 보관 하시겠습니까?

답변

1

마스터 브랜치로 이동하여 git revert HEADgit push origin master을 수행하십시오. 이 명령은 실행 취소하려는 커밋을 되돌리기위한 새로운 커밋을 만듭니다.

당신도 할 수있는 git reset --hard HEAD^ (마스터 분기)와 git push -f origin master (-f는 푸시를 강제로), 그러나 누군가가 당신이 밀어 최신 변경 사항을 당겨 경우 그들에 대한 문제가 발생할 것입니다.

new-branch의 변경 사항은 이러한 조작의 영향을받지 않아야합니다. 당신이 그것을 밀어했기 때문에

0

는 이상적인 방법은 마스터와 푸시 마스터에 커밋 git revert하는 것입니다 :

git checkout master 
git revert HEAD 
git push origin master 

이 위에 새가 되돌리기 인 커밋이 만들어집니다의 (변경 사항을 취소합니다) 이전

0

이미 새 지점에 있다고 가정합니다.

git push . +master^:master 
git push origin +master 

이렇게하면 마스터를 체크 아웃해도 로컬 및 원격으로 롤백 할 필요가 없습니다.

누군가가 이미 마스터를 사용하고있는 경우에주의하십시오. 변경 내용을 적용하려면 변경 내용을 다른 커밋 위로 리베이스해야합니다.

관련 문제