2011-10-20 98 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

获取使它容易做,但它是丑陋的IMO – manojlds

相关问题