将最近提交的工作放在 Git 中的分支上

Putting recent committed work on a branch in Git

我一直在 master 分支上做一些工作。我已经做了几次提交,但我的提交还没有被推送。我已经决定这项工作足够广泛,我应该把它放在一个分支上。 (这听起来像 Create branch from current working tree and reset to HEAD 但在那个问题中没有提交,所以问题不相同。)

我是一位经验丰富的 Git 用户,理论上我有理由相信我可以简单地执行以下操作:

git branch new-branch
git reset commit-before-start-of-work --hard

所以如果我想把我在上次 push 之后所做的所有工作都放在一个分支上,我会这样做:

git branch new-branch
git reset origin/master --hard

这似乎合乎逻辑且容易,但由于我直到今天才这样做甚至想过它,所以我想在尝试之前先问一下。由于我没有找到相同的问题,也许它也会对某人有所帮助。

是的,没错。在开始之前,请确保 git status 显示所有已提交的内容,因为 git reset --hard 将替换当前索引和工作树内容而不询问您,即使它们尚未在任何地方提交。