重置单个分支

3

当我重置一个分支时,它也会重置其他分支。例如,假设我已经在featureA上工作了一段时间,现在我需要开始一个新的功能。因此,我自然而然地执行以下操作:

git branch featureB
git checkout featureB

哦不,我的所有featureA的修改都在这里!所以我执行git reset -hard upstream/devgit checkout -- . 看起来可以,会清除所有featureA的东西。但是当我完成后想要回去时...

git checkout featureA
git status

我所有关于 featureA 的工作都消失了。:(

2个回答

2

您在创建featureB分支时,是否在featureA分支上?如果是的话,那么所有featureA的内容都会在这里。

您应该从开发分支(如dev)创建分支:

git checkout -b featureB dev  

该命令将创建你的分支,基于dev分支,而非基于featureA分支的延续。


2

git reset --hard 是一项具有破坏性的操作,如果您不知道自己在做什么,建议不要使用它。

在检查分支之前保存您的工作,您可以执行以下操作:

git stash

如果您想恢复更改,可以使用git stash pop命令。

如果您还没有在特性A中提交更改,则更改将会丢失。如果已经提交了更改,可以通过git reflog命令查找要返回的提交哈希值。


我知道这是破坏性的,只是惊讶它在当前分支之外起作用。 - lots-to-learn
1
如果您没有提交更改,则这些更改从未属于该分支。 - Bartlomiej Lewandowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接