Определите версию (SHA) последнего раза, когда был задан указанный файл c - PullRequest
0 голосов
/ 03 февраля 2020

У меня большой проект с несколькими сценариями и файлами, поддерживаемыми GIT. Во всех этих файлах есть документ, на котором я хочу напечатать версию фиксации (SHA), связанную с этим файлом. Мой поиск в Google дал мне:

git rev-parse --short HEAD

, что дает мне главу моего проекта. Однако, если мой документ не был включен в мое последнее зафиксированное изменение, эта версия не та, которую я хочу. Этот другой ответ stackoverflow предложил:

git log \-- c.rmd

, но ничего не выводить из этой команды в консоли.

Итак, есть ли способ вывести последний SHA, связанный с фиксацией к одному указанному c файлу / скрипту? Чтобы сделать его более наглядным, я хочу команду, которая будет выводить a3 из дерева спецификаций c при вызове для файла c.rmd.

|
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

В конце я хочу, чтобы этот номер версии автоматически печатался в документе RMarkdown в R. Таким образом, решение может быть либо чистым git, либо из указанного c R пакета.

1 Ответ

3 голосов
/ 03 февраля 2020

Чтобы найти SHA последнего коммита, в котором был изменен файл path/to/myfile.txt, go для

git rev-list --all -1 -- path/to/myfile.txt

Для короткого SHA:

git log --all -1 --pretty=format:"%h" -- path/to/myfile.txt
...