2011-10-21 3 views
16

마스터 브랜치에 대한 커밋을 한 후에 일련의 커밋을 만들었습니다. 브랜치를 다른 브랜치에서 만들어야합니다. 특정 커밋으로 시작하여 그 커밋을 다른 지사로 옮길 수 있고 마스터에 대한 마지막 커밋으로 양호한 커밋을 유지할 수 있습니까?힘내 : 마스터에서 다른 브랜치로 커밋하기

+0

[Git을 사용하여 가장 최근 커밋을 새 분기로 이동] (http://stackoverflow.com/questions/1628563/move-the-most-recent-commits-to-a) -new-branch-with-git) –

답변

25

물론 :

$ git branch new-branch-name      # Create a new branch from the current commit 
$ git reset --hard <last good commit on master> # Reset master to the good commit 
+0

쉽습니다. 감사! –

+0

따라서 마지막 두 커밋을 마스터에서 다른 분기로 제거하려고합니다. 마스터의 마지막 커밋을 체크 아웃하고 거기에서 분기를 만든 다음 마스터 HEAD ~ 2를 재설정 하시겠습니까? 그러면 분기에서 커밋이 제거되지 않습니다. 이것은 커밋이 삭제되지 않는다는 것을 의미합니까? 이제는 마스터 포인터가 이제 두 커밋을 가리키고 있습니다. 재설정 된 것만으로 분기 포인터를 커밋 이전으로 옮길 수 있습니까? – croraf

+0

@croraf : 브랜치는 여전히 마스터에 있던 이전의 두 커밋을 가리 킵니다. – mipadi

1

예, 할 수 있습니다, 그것은 2 별도의 작업 것 :

복사 원하는 지점에 하나 개의 지점에서 커밋 그들이 될 :

git cherry-pick <hash_of_commit> --onto <target_branch> 

그런 다음 마스터 분기를 양호한 커밋으로 되 돌리십시오.

git checkout master 
git reset --hard <hash_of_good_commit> 
관련 문제