2013-05-20 1 views
2

나는 약간의 난제에 빠져있다. 실수로 두 개의 Git 저장소간에 코드를 병합했습니다. 어떤 이유로 든 repo의 이름은 같았고 repo의 URL 중 하나가 변경되기 전에 알려졌습니다. 그래서 두 개의 다른 프로젝트에서 코드를 병합했습니다. 다음은 저장소 커밋의 그림입니다.힘내 병합을 삭제하려면 어떻게해야하나요?

Merged repo

는 나는 어떤 가지 (모두 함께 머리에 노력하고있다)라는 이름의하지 않았습니다. 커밋 중 하나 (특히 오렌지 중 하나)를 삭제하려면 어떻게해야합니까? 당신이 할 수있는

답변

2

:

당신은 당신이 필요합니다 현재의 작업 복사본에 아무것도없는 확실한 경우
git reset --hard 628612ac 

. 이렇게하면 HEAD이 병합 전에 커밋 된 것입니다. 아무 것도 실제로 삭제되지 않습니다 - 다른 커밋은 도달 할 수 없게되고 나중에 언젠가 가비지 수집됩니다.

또 다른 옵션은 git-revert을 사용하는 것입니다

git revert -m 1 e90aeed8 

이것은 당신의 역사를 유지합니다. 그것은 e90ae가 한 모든 것을 되 돌리는 새로운 커밋을 만듭니다. 여기 https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt

그리고 :

여기에 좋은 주제에 대한 읽기의 http://git-scm.com/2010/03/02/undoing-merges.html

+0

감사합니다! git revert는 로컬에서 트릭을 수행하고 재설정했다. -hard는 원격 저장소에서 작업했다. 링크는 참으로 도움이됩니다! –