如何使 git 日志显示相对于当前目录的文件路径?
How to make git log show file paths relative to current directory?
目前我正在做的基于Git的项目,我一般都是在一个子目录下。
下面是我从存储库根目录的子目录中 运行 命令 git log --name-only
时的输出。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
child_dir1_from_root/file1 | 184 +--
child_dir2_from_root/file2 | 2 +-
如何让 git log
输出如下所示的内容?这使得区分列出的文件变得非常容易,只需复制文件路径并 运行 宁 git diff HEAD~ {copied_file_path}
而不是必须手动修改文件路径然后 运行 命令。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
file1 | 184 +--
../child_dir2_from_root/file2 | 2 +-
我查看了 git log
文档,但没有什么特别之处。我可以写一个脚本来做到这一点,但我很好奇 Git 是否有内置的方式。
您可以将 --relative='PATH' 添加到您想要的子目录中。
为了在 git log --name-only
的输出中使用路径,将选项 --git-dir
添加到 git diff
。
git --git-dir="$(git rev-parse --show-toplevel)"/.git diff HEAD~ child_dir1_from_root/file1
为了方便使用,在配置中做一个别名。
[alias]
mdiff = "! git --git-dir=\"$(git rev-parse --show-toplevel)\"/.git diff"
git mdiff HEAD~ child_dir1_from_root/file1
现在只要当前目录属于工作树就可以工作。
目前我正在做的基于Git的项目,我一般都是在一个子目录下。
下面是我从存储库根目录的子目录中 运行 命令 git log --name-only
时的输出。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
child_dir1_from_root/file1 | 184 +--
child_dir2_from_root/file2 | 2 +-
如何让 git log
输出如下所示的内容?这使得区分列出的文件变得非常容易,只需复制文件路径并 运行 宁 git diff HEAD~ {copied_file_path}
而不是必须手动修改文件路径然后 运行 命令。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
file1 | 184 +--
../child_dir2_from_root/file2 | 2 +-
我查看了 git log
文档,但没有什么特别之处。我可以写一个脚本来做到这一点,但我很好奇 Git 是否有内置的方式。
您可以将 --relative='PATH' 添加到您想要的子目录中。
为了在 git log --name-only
的输出中使用路径,将选项 --git-dir
添加到 git diff
。
git --git-dir="$(git rev-parse --show-toplevel)"/.git diff HEAD~ child_dir1_from_root/file1
为了方便使用,在配置中做一个别名。
[alias]
mdiff = "! git --git-dir=\"$(git rev-parse --show-toplevel)\"/.git diff"
git mdiff HEAD~ child_dir1_from_root/file1
现在只要当前目录属于工作树就可以工作。