移动分支指针比使用`git reset --hard`有更安全的方法吗?

时间:2014-06-19 16:16:58

标签: git

使用git时,我倾向于使用很多&#34;高级&#34;在推送到遥控器之前重写和重新组织本地历史记录的功能。我经常用来更改当前分支指向的提交的一个命令是git reset --hard <commit>。不幸的是,当在本地目录中使用未提交的更改运行时,此命令会产生一些潜在的不良影响。由于这个功能,我在过去失去了工作(虽然通常不会太多,我经常承诺)。

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

2 个答案:

答案 0 :(得分:2)

当你可以使用git checkout时,为什么要寻找 git checkout之类的内容?

您要查找的选项是-B,它会检出指定的ref并从中创建新分支,或更新现有分支。即使您指定了已经使用的分支,它也能正常工作。

答案 1 :(得分:1)

这些将保留您的更改

git reset --soft

git reset --mixed

执行其中一项操作后,您可以使用git diff来评估是否要将更改丢弃。