使用git时,我倾向于使用很多&#34;高级&#34;在推送到遥控器之前重写和重新组织本地历史记录的功能。我经常用来更改当前分支指向的提交的一个命令是git reset --hard <commit>
。不幸的是,当在本地目录中使用未提交的更改运行时,此命令会产生一些潜在的不良影响。由于这个功能,我在过去失去了工作(虽然通常不会太多,我经常承诺)。
是否有git reset --hard
的替代方法可以更改我的当前分支指向的提交,当我在工作中有未提交的更改时,这不会导致数据丢失目录? (理想情况下,我希望像git checkout
之类的东西改变我当前的分支指针,而不是改变HEAD。)
答案 0 :(得分:2)
当你可以使用git checkout
时,为什么要寻找 git checkout
之类的内容?
您要查找的选项是-B
,它会检出指定的ref并从中创建新分支,或更新现有分支。即使您指定了已经使用的分支,它也能正常工作。
答案 1 :(得分:1)
这些将保留您的更改
git reset --soft
或
git reset --mixed
执行其中一项操作后,您可以使用git diff
来评估是否要将更改丢弃。