2011-10-20 3 views
6

때때로 다음과 같은 상황에서 자기 자신을 발견한다. 브랜치 (master라고한다)에서 작업 중이고 일부 파일을 편집 중이다. 커밋을위한 시간이왔다. 나는 새로운 브랜치 (실험적)를 사용하는 것을 선호한다는 것을 알았다. 즉, 이전 분기 (마스터)은 그대로 유지해야하며, 새로운 분기 모양을 만들어해야합니다git : 현재 브랜치에서 현재 수행중인 커밋되지 않은 작업을 새 브랜치로 바꾼다

.. -- master -- new commit 

그렇게 할 수있는 가장 쉬운 방법은 무엇입니까?

현재 저는 이전 분기로 커밋 한 다음 새 분기를 만들고 마지막으로 분기를 다시 설정합니다. 그러나 그것은 정말로 추악합니다.

+2

[Git : 기존 작업을 새 분기로 이동하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/1394797/git-how-to-move-existing-work-to-new-branch) – brendan

답변

4
git checkout -b branch  # create new branch out of current head 
git add <files>    # the changes you had done in your working directory will be carried over 
git commit -m "message"  # commit! 
+0

이 질문에 언급되어 있습니다. "하지만 커밋을위한 시간이되면, 나는 새로운 지사를 만들기를 원한다는 것을 깨닫게됩니다." – COD3BOY

+0

@Sanjay - 네, 요점은 무엇입니까? – manojlds

+0

@ user1004474 - 사용해보기. 브랜치를 전환하면 무단 변경과 스테이지 변경이 모두있게됩니다. – manojlds

1

그것은 먼저 새로운 지점을 만드는 경우 약간 쉽게 :

$ git checkout -b new_branch 
$ git commit 
+0

요점은 내가 이것을 미리 계획하지 않았다는 것입니다. 그래서 변경이 먼저 이루어졌습니다 (그리고 git add를 사용하여 인덱스에 추가 할 수도 있습니다). 그런 다음 분기를 결정합니다. – tros443

+0

@ user1004474 : 여전히 작동합니다. 변경 여부와 색인에 추가되었는지 여부에 관계없이'git checkout -b new_branch'를 실행할 수 있습니다. – hammar

+0

네, 맞습니다. – tros443

0

또 다른 가능성은 당신이 계속 진행하여 master 지점에 커밋하기위한, 새로운 HEAD에서 다른 가지를 잘라 (feature). 이 작업이 완료되면 커밋 이전에 git reset 마스터를 마스터 할 수 있습니다.

+0

좋아, 당신은'현재, 나는 오래된 지점에 커밋을 누른 다음 새로운 지점을 만들고 마지막으로 지점을 다시 설정하지 않았다. 그러나 그것은 정말로 추악합니다. "그렇다면. – manojlds

+0

예. 나는 그것을 놓쳤다. 나는 FWIW가 추악하다고 생각하지 않는다. –

+0

Get을 사용하면 쉽게 할 수 있지만 못생긴 IMO입니다. – manojlds

관련 문제