可能重复:
Git - Create a branch with current changes将创建一个Git分支删除我的本地修改
我已经做了我的项目一大堆工作,我意识到应该在另一个已经完成科。如果我现在创建一个分支,我的当前更改是否需要签入,或者在创建新分支时将它们擦除?我对GIT很陌生,只是想避免犯一个新手的错误。
可能重复:
Git - Create a branch with current changes将创建一个Git分支删除我的本地修改
我已经做了我的项目一大堆工作,我意识到应该在另一个已经完成科。如果我现在创建一个分支,我的当前更改是否需要签入,或者在创建新分支时将它们擦除?我对GIT很陌生,只是想避免犯一个新手的错误。
如果创建当前磁头使用一个新的分支:
$ git checkout -b newbranchname
然后更改将不会被覆盖。
非常正确,只要OP尚未对错误的分支提交任何更改。要理解的重要一点是分支仅仅是一个指向提交的指针,所以当你这样做时,你所做的只是创建一个指向当前提交的新指针并检出它 - 但由于它是相同的提交,它根本不需要触摸你的工作树。 – Cascabel 2011-01-29 15:40:55
他们将被移动到新的分支。但是如果你觉得不安全,你可以先备份当地的项目目录。
在你的情况,bdonlan的答案适用,因为创建一个新的分支不会触及工作目录。
在更一般的情况下,如果您尝试切换仍然存在工作目录更改的分支,Git会警告您并中止。无论哪种方式,最好不要失去变化。
在这种情况下,移动未提交的工作目录更改为一个新的分支,首先将它保存到Git的藏匿处:
git stash save
然后创建和检查分支:
git checkout -b new-branch-name
然后弹出您的工作目录从Git存储更改:
git stash pop
相关:http://stackoverflow.com/questions/389962 7/git-create-a-branch-with-current-changes – Dogbert 2011-01-29 10:15:12
你是否已将更改提交到当前分支,或者他们只是躺在工作副本中? – 2011-01-29 13:34:57
这些更改只是放在我的工作副本中。 – Nippysaurus 2011-01-30 02:33:32