有用的几条Git命令

玖亖伍
2023-10-09 / 0 评论 / 98 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年10月09日,已超过224天没有更新,若内容或图片失效,请留言反馈。

git fsck

git fsck 命令用于检查 Git 数据库内部的完整性,找出问题对象。这3个选项具体用法如下:

  • git fsck --dangling:
    显示悬空对象(dangling object),即孤立的提交/树/blobs,不被任何其他对象引用。
  • git fsck --unreachable:
    显示不可达对象(unreachable object),即不可到达的对象,不被任何一个分支或标签引用。
  • git fsck --lost-found:
    显示遗失的对象(lost found), 位于 .git/lost-found/ 其他 commit 引用了的对象。

总结:

  • dangling 对象不被任何对象引用,但仍在数据库中。
  • unreachable 对象不被任何分支或标签引用,可能在重写历史后出现。
  • lost-found 对象被其他 commit 引用,但不在当前分支或标签中。

这3个选项可以帮助我们发现和恢复在重写历史时“丢失”的对象,修复问题。

git log

示例命令: git log --format="hash: %H%nauthor: %an%ndate: %aI%n%n%B"
--fromat参数解释:

  • %H - commit hash (hash 值)
  • %an - author name (作者用户名)
  • %aI - author date, ISO 8601 格式 (提交时间)
  • %B - commit message body (提交信息)
  • %n - 换行符

实际应用

  • 显示不可达的Commit信息

    git fsck --unreachable | grep commit | cut -d' ' -f3 | xargs -I {} git log --format="hash: %H%nauthor: %an%ndate: %aI%n%n%B" -n 1 {}

参考

0

评论 (0)

取消