假设我有一个具有此目录结构的存储库:
my-projects
├── .git
├── project-a
│ ├── sun.hs
│ └── rain.hs
└── project-b
├── earth.ml
└── moon.ml
要查看我对project-a
所做的所有更改,可以执行git log --oneline project-a
:
646fe67 Add rain.hs
752a061 Change color of sun
9edcc0c Add sun.hs
到目前为止,一切都很好。但是,假设我现在将project-a
目录重命名为project-1
:
git mv project-a project-1
git commit -m 'Rename project-a to project-1'
要查看project-1
(前一个project-a
)的日志,请执行git log --oneline project-1
:
82442bb (HEAD -> master) Rename project-a to project-1
哦,不!它没有显示我对sun.hs
和rain.hs
所做的更改!此输出本来会有用得多:
82442bb (HEAD -> master) Rename project-a to project-1
646fe67 Add rain.hs
752a061 Change color of sun
9edcc0c Add sun.hs
但是我该怎么做呢?即如何显示重命名目录的完整日志?
我知道git log --follow project-1/sun.hs
可以正确显示文件的日志,但这仅适用于一个文件。在目录上使用时,--follow
选项无效。
答案 0 :(得分:0)
不幸的是,你不能。
Git不存储文件夹名称,它存储文件路径,因此您无法跟踪文件夹重命名。
您所能做的就是编写一个脚本来完成它。
例如:
git log --follow -- <file name>