Как легко проверить пустые коммиты на ветке git с какого-то момента? - PullRequest
1 голос
/ 24 февраля 2020

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

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

git diff HEAD^{n+1}  HEAD^^^^...lots of ^{n}

и проверять количество выходных строк, и использовать его для получения идентификаторов фиксации. Но - я надеялся, что есть какой-то способ лучше автоматизировать это. Я знаю, что есть команда git filter-branch, которая может удалить пустых коммитов, но сначала я хочу узнать, были ли они у меня и где они находятся. Также я не хочу go полностью возвращаться к первоначальному коммиту.

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете использовать:

git log --stat

, который даст вам для каждого списка коммитов строку, такую ​​как:

7 files changed, 55 insertions(+), 75 deletions(-)

, после чего вы сможете искать 0 files changed. Это не полная автоматизация, но, поскольку вы сказали, что хотите посмотреть, какие коммиты они есть, это хороший способ сделать это.

Вы также можете использовать что-то вроде

sed -r '/^commit [a-z]{8,}/,/^[1-9] files changed/d'

на выходе журнала, чтобы удалить записи для фиксаций с изменениями. (Предостережение: не проверял эту команду sed.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...