有没有比“git reset—hard”更安全的移动分支指针的方法?



在使用git时,我倾向于在将本地历史推送到远程之前使用大量的"高级"特性来重写和重新组织本地历史。我经常用来更改当前分支指向的提交的命令是git reset --hard <commit>。不幸的是,当在本地目录中运行未提交的更改时,此命令会产生一些潜在的不良影响。在过去,由于这个特性,我丢失了工作(虽然通常不是很多,但我倾向于经常提交)。

是否有git reset --hard的替代方案来更改我的当前分支指向的提交,当我在工作目录中有未提交的更改时不会导致数据丢失?(理想情况下,我想要的东西像git checkout改变我当前的分支指针,而不是改变头。)

当你可以使用git checkout时,你为什么要寻找像 git checkout这样的呢?

你正在寻找的选项是-B,它检查出指定的ref并从中创建一个新的分支,或者更新一个现有的分支。

这些将保留您的更改

git reset --soft

git reset --mixed

在完成其中一个之后,您可以使用git diff来评估是否要放弃更改

最新更新