Как git винить каталог

Я хотел бы знать, как использовать git вину, чтобы знать, кто создал один каталог.

Когда я пытаюсь:

git blame DIRECTORY_NAME

Я получаю:

fatal: no such path DIRECTORY_NAME in HEAD

Кстати, каталог пуст. Любые предложения?

Ответ 1

Попробуйте получить журнал только этой директории и используйте опцию -p, чтобы увидеть, какие именно изменения произошли.

$ git log -p <path to directory>

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

Ответ 2

Я создал небольшую функцию, которая перебирает все файлы и делает представление об обвинениях в каталогах похожим на GitHub.

Выходной формат:

 FILENAME      COMMIT-HASH  Commit-DATE  AUTHOR  COMMIT-MESSAGE

выглядит так

 myfile1    abceeee 2019-04-23 19:26  Radon8472  Added file example
 readme.md  abd0000 2019-04-24 19:30  Radon8472  Update Readme-File
blamedir() 
{ 
  FILE_W=35; 
  BLAME_FORMAT="%C(auto) %h %ad %C(dim white)%an %C(auto)%s"; 

  for f in $1*; 
  do 
    git log -n 1 --pretty=format:"$(printf "%-*s" $FILE_W "$f") $BLAME_FORMAT" -- $f; 
  done; 
}; 

использование-eamples:

  • blamedir похожи, как blamedir./
  • blamedir DIRECTORY_NAME/

Не стесняйтесь изменять формат отображения, изменяя переменную BLAME_FORMAT в функции.

Я думаю, что можно также установить эту функцию как git-alias.