将主分支中的所有当前未提交的工作移动到其他分支而不是

时间:2018-05-25 15:37:51

标签: git version-control branch git-branch

我是Git的新手并且学习将它用于我的项目。目前,当我意外地在master工作时,我想知道如何将未提交的工作转换为分支。我正在自己工作,但是想要保持井井有条。

例如,我做了一系列提交,master是最新的。然后我开始研究主分支,但是决定工作将比预期的更多,所以我更愿意在其他分支中进行。

我当然可以将更改提交到master,然后从一个新的分支开始,但我宁愿拥有自上次提交以来我所做的所有事情。科。这样做的简单方法是什么?

这是一个需要git reset --soft的情况吗?或者有更简单的方法吗?感谢。

1 个答案:

答案 0 :(得分:2)

我看到三个案例:

  1. 您希望继续使用master上的las提交创建的新分支:

    git checkout -b name-of-new-branch
    

    然后你可以在新分支中提交

  2. 您希望继续使用现有分支机构(that-branch),当前的WIP不会触及that-branchmaster中不同的文件(不要...不用担心,如果情况如此,git会抱怨:

    git checkout that-branch
    

    如果结帐有效,您可以提交

  3. that-branchmaster中的某些文件不同(当您尝试使用2时,git会抱怨:

    git stash
    git checkout that-branch
    git stash apply
    
  4. 您可能需要解决冲突。如果你不能(合并可能很难),不要感到不知所措,git reset HEAD --hard。存储仍然在这里,您可以返回master并执行步骤1,然后尝试以传统方式合并。

    您也可以git stash pop,但我总是强调,如果失败,我将失去工作。