确定上次提交特定文件的版本 (SHA)
Identify the version (SHA) of the last time a specific file was committed
我有一个大项目,其中包含多个脚本和文件,全部由 GIT 维护。在所有这些文件中,有一个文档我想在其上打印与该文件关联的提交版本 (SHA)。我的 Google 搜索结果是:
git rev-parse --short HEAD
这给了我项目的 HEAD。但是,如果我的文档未包含在我上次提交的更改中,则此版本不是我想要的版本。 This other Whosebug answer 建议:
git log \-- c.rmd
但控制台中此命令没有任何输出。
那么,有没有办法输出与特定 file/script 关联的最新提交 SHA?为了使其更直观,我想要一个命令,该命令在调用文件 c.rmd
时从特定树输出 a3
。
|
L__commit 4 - files a.r, b.r - SHA a4
|
L__commit 3 - files c.rmd - SHA a3
|
L__commit 2 - files a.r - SHA a2
|
L__commit 1 - files a.r, b.r, c.rmd - SHA a1
最后,我希望在 R 中的 RMarkdown 文档中自动打印该版本号。因此解决方案可以是纯 git 或来自特定 R 包的。
要查找文件 path/to/myfile.txt
已被修改的最后一次提交的 SHA,请转到
git rev-list --all -1 -- path/to/myfile.txt
对于短 SHA :
git log --all -1 --pretty=format:"%h" -- path/to/myfile.txt
我有一个大项目,其中包含多个脚本和文件,全部由 GIT 维护。在所有这些文件中,有一个文档我想在其上打印与该文件关联的提交版本 (SHA)。我的 Google 搜索结果是:
git rev-parse --short HEAD
这给了我项目的 HEAD。但是,如果我的文档未包含在我上次提交的更改中,则此版本不是我想要的版本。 This other Whosebug answer 建议:
git log \-- c.rmd
但控制台中此命令没有任何输出。
那么,有没有办法输出与特定 file/script 关联的最新提交 SHA?为了使其更直观,我想要一个命令,该命令在调用文件 c.rmd
时从特定树输出 a3
。
|
L__commit 4 - files a.r, b.r - SHA a4
|
L__commit 3 - files c.rmd - SHA a3
|
L__commit 2 - files a.r - SHA a2
|
L__commit 1 - files a.r, b.r, c.rmd - SHA a1
最后,我希望在 R 中的 RMarkdown 文档中自动打印该版本号。因此解决方案可以是纯 git 或来自特定 R 包的。
要查找文件 path/to/myfile.txt
已被修改的最后一次提交的 SHA,请转到
git rev-list --all -1 -- path/to/myfile.txt
对于短 SHA :
git log --all -1 --pretty=format:"%h" -- path/to/myfile.txt