git diff не работает с голым репо, хук после получения

Я работаю над крюком после получения на голом репо. Я хочу получить имена файлов, которые были изменены и помещены в этот голый репо (только последний). Чтобы получить это, я использую эту команду.

git diff --name-only HEAD^

Это дает мне ошибку, когда я нажимаю на голое репо.

remote: fatal: This operation must be run in a work tree

Я понял, что в голом репо нет рабочего дерева, поэтому эта команда не работает, но как запустить этот запуск?


person Foolish    schedule 13.06.2015    source источник


Ответы (1)


Я считаю, что команда, которую вы ищете, это git diff --name-only HEAD^ HEAD. Это сравнит «текущий» коммит с коммитом перед ним.

person David Deutsch    schedule 13.06.2015
comment
Это дает remote : fatal : Not a git repository на голом репо. На не голом репо работает нормально. Мне нужно, чтобы это запускалось после приема моего центрального голого репо. - person Foolish; 13.06.2015
comment
Хммм, это очень загадочная ошибка, поскольку это определенно является репозиторием git (иначе вы бы не получили исходную ошибку в своем вопросе). И я попробовал эту команду на моем голом репо, и она работала нормально, хотя и не как часть хука. Из любопытства, можете ли вы запустить команду в своем голом репо из командной строки, то есть не как часть хука? - person David Deutsch; 13.06.2015
comment
@Foolish Я не получаю никаких ошибок с приведенной выше командой в голом репо. Может быть, что-то еще не так? - person suvayu; 14.06.2015
comment
@DavidDeutsch Да, предложенное вами решение отлично работает в голом репо, но не работает как часть хука, потому что, когда я запускаю хук, я нахожусь в каталоге .git, а это работает напрямую, потому что оно находится в голом каталоге репо. - person Foolish; 15.06.2015
comment
@DavidDeutsch Это тоже отлично работает в хуке, не знаю, в чем проблема .. Спасибо за помощь. - person Foolish; 15.06.2015
comment
Это должно быть git diff --name-only HEAD^ HEAD - person Foolish; 23.06.2015
comment
Спасибо, @Foolish, я обновил ответ для будущих искателей. - person David Deutsch; 23.06.2015