gpt4 book ai didi

git - 我可以让 git fsck 显示提交名称吗?

转载 作者:IT王子 更新时间:2023-10-29 00:58:50 26 4
gpt4 key购买 nike

在许多已删除的提交中,我有一个已删除的提交,我正在尝试恢复。我发现了 fsck --lost-found 命令。太棒了!

问题是我有一百多个悬而未决的提交语句,其中的信息很少。

dangling commit 654857f5e8418c4031e1d8411579906c528da562
dangling commit 74499bd482d688c1416d5091b391d82a438855a9
dangling commit 124ed7cd4465434865577c82757732df62febb59
dangling commit 92573bf4595be6f80f22eba94548dbc88d8796fc
dangling commit 125b0ffa3f0db71f23fda65d6adb2f9941748cc0
dangling commit ba5b1f8d6d920900abc88bd725d44ba86c8c772f
dangling blob e760d751ae4e3dab9beed0996e683c0f291eb4cc

如果它可以用 sha 抛出提交名称,那将是一个很大的帮助。事实上,我必须对每个提交都运行 git show,一个接一个,以找到正确的提交。有没有更简单的方法?

最佳答案

这适用于 Linux 和 Mac:

git fsck --lost-found | grep "dangling commit" | \
cut -d" " -f 3 | xargs -I "{}" git --no-pager show --stat "{}"

使用寻呼机和更多类似 git log(感谢 Rafał Cieślak ):

git fsck --lost-found 2>/dev/null | grep "dangling commit" | \
cut -d" " -f 3 | \
xargs -I "{}" git --no-pager show --no-patch --format=format:"%h <%an> %s%n" "{}" | \
less

我不确定你在 Windows git shell 中是否有 grepxargs

解释:

  • git fsck 查找数据
  • grep 将其减少为只有悬空提交
  • cut 只留下提交 ID
  • xargs 使用 ID 运行命令 git show --stat

[编辑] 针对存在多个悬空提交的情况进行了修复。

关于git - 我可以让 git fsck 显示提交名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com