执行git reset后的匿名分支

dre*_*mac 6 git branch reset

背景: Trevor正在尝试一个测试项目,仅仅是为了尝试git.这是一个尚未共享的本地单人存储库,因此Trevor为了消除一些不需要的提交而进行了重置:

    :git reset --hard 6aa32cfecf4
    HEAD is now at 6aa32cf auto commit Sun Feb 28 16:00:10 -0800 2010
Run Code Online (Sandbox Code Playgroud)

然后Trevor愉快地为该项目添加了新的提交.然后,当Trevor查看提交历史的图形表示时,Trevor发现似乎存在被删除提交的匿名分支.它不会显示为使用git分支的分支,但它确实显示在GUI中.

问题1: Trevor如何摆脱这个"匿名分支"...... Trevor真正关注的是什么?有什么指示可以帮助Trevor了解当Trevor进行硬重置时发生的事情,这样Trevor可以更好地设定Trevor的期望.

问题2:假设特雷弗与其他人共享的项目.在不进行硬重置的情况下,做同样(或类似的事情)的替代方案是什么?

Von*_*onC 4

正如使用Git 恢复丢失提交的插图指南中提到的,您可以恢复“丢失”的提交(如“不再被分支或标签引用”)。
\n这就是为什么它们仍然出现在 gitk 中。
\n例如,一个:

\n\n
$ git fsck \xe2\x88\x92\xe2\x88\x92lost-found\n
Run Code Online (Sandbox Code Playgroud)\n\n

也会显示它们。

\n\n

清理这个(假设您没有从任何其他删除操作中恢复任何内容)

\n\n
 $ git gc --aggressive\n $ git prune\n
Run Code Online (Sandbox Code Playgroud)\n\n

另请参阅git gc:自己清理

\n\n
\n\n

如果该分支已被共享,则可能的替代方案是git revert为了进行新的提交,取消之前的 n 个提交。

\n