无需签出即可创建悬空提交

Nil*_*ner 5 git

有没有办法静默创建一个提交

  • 未连接到当前分支
  • 之后没有签出

喜欢

A-B-C-D-E-F-G   # master
       \   \
        X   Y
Run Code Online (Sandbox Code Playgroud)

XY未经用户注意到创建.

理由:

我正在编写大量探索性实验代码,并希望在运行实验时自动提交当前状态.这些中间状态不应该在我的Git历史中结束,我不想在经常运行之前经历提交的心理开销(或者偶尔忘记它).

我的想法是有很多悬挂提交,不会被推送到我的遥控器,可能会被垃圾收集删除.每个单独的提交SHA1都将注释到我的实验结果,使我能够追溯哪些更改对结果有什么影响.

jwg*_*jwg 2

如果你这样做

$ git commit -m 'Foo'
[my_branch b54ed59] Foo
$ git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

你会发现你重置的commit并没有消失,而是仍然存在,这样你就可以这样做

git checkout b54ed59
Run Code Online (Sandbox Code Playgroud)

然后回到那个提交,悬在你的分支上。

标记提交可以让您永久保留它。