将 master 分支中所有当前未提交的工作移至其他分支
Moving all current uncommitted work in master branch to some other branch instead
我是 Git 的新手,正在学习如何将其用于我的项目。目前,我想知道当我不小心在 master
工作时如何将未提交的工作切换到分支。我自己一个人工作,但无论如何都想让事情井井有条。
例如,我进行了一系列提交并且 master
是最新的。然后我开始在 master 分支上工作,但决定工作会比预期的更复杂,所以我更愿意在其他分支上做。
我当然可以将之前的更改提交到 master
,然后从那里开始在一个新分支中,但我宁愿拥有自上次提交以来我一直在做的所有事情分支。这样做的简单方法是什么?
在这种情况下是否需要 git reset --soft
?或者有更简单的方法吗?谢谢
我看到三种情况:
你想在 master
上的 las 提交创建的新分支上继续:
git checkout -b name-of-new-branch
然后你可以在新的分支中提交
您想在现有分支 (that-branch
) 上继续,并且当前 WIP 未触及 that-branch
和 master
中不同的文件(别担心,如果是这样,git 会投诉的):
git checkout that-branch
如果结帐有效,您可以提交
某些文件在 that-branch
和 master
中不同(git 在您尝试 2 时抱怨。:
git stash
git checkout that-branch
git stash apply
可能存在您必须解决的冲突。如果你不能(合并可能很难),不要感到不知所措,git reset HEAD --hard
。存储仍会在这里,您可以返回 master
并执行第 1 步,然后再尝试以传统方式合并。
你也可以git stash pop
,但我总是强调如果失败我会失去工作。
我是 Git 的新手,正在学习如何将其用于我的项目。目前,我想知道当我不小心在 master
工作时如何将未提交的工作切换到分支。我自己一个人工作,但无论如何都想让事情井井有条。
例如,我进行了一系列提交并且 master
是最新的。然后我开始在 master 分支上工作,但决定工作会比预期的更复杂,所以我更愿意在其他分支上做。
我当然可以将之前的更改提交到 master
,然后从那里开始在一个新分支中,但我宁愿拥有自上次提交以来我一直在做的所有事情分支。这样做的简单方法是什么?
在这种情况下是否需要 git reset --soft
?或者有更简单的方法吗?谢谢
我看到三种情况:
你想在
master
上的 las 提交创建的新分支上继续:git checkout -b name-of-new-branch
然后你可以在新的分支中提交
您想在现有分支 (
that-branch
) 上继续,并且当前 WIP 未触及that-branch
和master
中不同的文件(别担心,如果是这样,git 会投诉的):git checkout that-branch
如果结帐有效,您可以提交
某些文件在
that-branch
和master
中不同(git 在您尝试 2 时抱怨。:git stash git checkout that-branch git stash apply
可能存在您必须解决的冲突。如果你不能(合并可能很难),不要感到不知所措,git reset HEAD --hard
。存储仍会在这里,您可以返回 master
并执行第 1 步,然后再尝试以传统方式合并。
你也可以git stash pop
,但我总是强调如果失败我会失去工作。