Git 面试题 目录

什么是 Git blame?

推荐答案

git blame 是一个 Git 命令,用于逐行显示文件的每一行最后一次被修改的提交信息。它会显示每一行的作者、提交哈希、提交时间以及具体的修改内容。这个命令通常用于追踪代码的修改历史,帮助开发者了解某一行代码是谁在什么时候修改的。

本题详细解读

1. 命令格式

  • <file>:要查看的文件路径。

2. 输出格式

git blame 的输出通常包含以下信息:

  • 提交哈希:最后一次修改该行的提交的哈希值。
  • 作者:修改该行的作者。
  • 提交时间:该行最后一次被修改的时间。
  • 行号:文件中的行号。
  • 内容:该行的实际内容。

例如:

3. 常用选项

  • -L <start>,<end>:只显示指定行号范围内的 blame 信息。
  • -C:检测代码的移动或复制,即使这些代码是从其他文件复制过来的。
  • -M:检测代码的移动或复制,即使这些代码是在同一个文件内移动的。
  • -w:忽略空白字符的修改。

4. 使用场景

  • 代码审查:在代码审查过程中,使用 git blame 可以快速定位某一行代码的修改者,便于进一步讨论或询问。
  • 问题排查:当发现某行代码有问题时,可以使用 git blame 找到最后一次修改该行代码的提交,查看当时的修改原因。
  • 代码所有权:通过 git blame 可以了解代码库中不同部分的代码是由谁负责的,便于团队协作和责任划分。

5. 注意事项

  • git blame 只能显示当前分支上的修改历史。如果需要查看其他分支的修改历史,需要先切换到该分支。
  • 如果文件在多次提交中被重命名或移动,git blame 可能无法正确追踪到最初的修改历史。此时可以结合 git loggit reflog 进行更详细的追踪。
纠错
反馈