我是Git的新手并且学习将它用于我的项目。目前,当我意外地在master
工作时,我想知道如何将未提交的工作转换为分支。我正在自己工作,但是想要保持井井有条。
例如,我做了一系列提交,master
是最新的。然后我开始研究主分支,但是决定工作将比预期的更多,所以我更愿意在其他分支中进行。
我当然可以将更改提交到master
,然后从一个新的分支开始,但我宁愿拥有自上次提交以来我所做的所有事情。科。这样做的简单方法是什么?
这是一个需要git reset --soft
的情况吗?或者有更简单的方法吗?感谢。
答案 0 :(得分:2)
我看到三个案例:
您希望继续使用master
上的las提交创建的新分支:
git checkout -b name-of-new-branch
然后你可以在新分支中提交
您希望继续使用现有分支机构(that-branch
),当前的WIP不会触及that-branch
和master
中不同的文件(不要...不用担心,如果情况如此,git会抱怨:
git checkout that-branch
如果结帐有效,您可以提交
that-branch
和master
中的某些文件不同(当您尝试使用2时,git会抱怨:
git stash
git checkout that-branch
git stash apply
您可能需要解决冲突。如果你不能(合并可能很难),不要感到不知所措,git reset HEAD --hard
。存储仍然在这里,您可以返回master
并执行步骤1,然后尝试以传统方式合并。
您也可以git stash pop
,但我总是强调,如果失败,我将失去工作。