Как получить такой же push-вывод, используя диапазон дат в Git? - PullRequest
4 голосов
/ 10 мая 2011

Мне нравится, как git показывает, сколько кода я отправил на сервер [1], есть ли способ получить эти входные диапазоны дат или зафиксировать?

[1]: 6 files changed, 575 insertions(+), 3 deletions(-)

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Основными способами получения такого рода информации являются опции --shortstat, --stat и --numstat, которые можно передавать на оборудование diffcore, например, через git-diff и git-log.

* 1007.* В вашем случае это звучит так, как будто вам нужна опция --shortstat, которая дает только итоговую строку, а не симпатичную информацию для каждого файла, которую вы видите после извлечения, заданного --stat.Последний, --numstat, дает ту же самую информацию о файлах в более машиночитаемом формате.

Чтобы применить это к диапазону фиксации, просто используйте git diff --shortstat A B, где A иB - это коммиты, которые вы хотите сравнить.

Чтобы получить ту же информацию для каждого отдельного коммита в диапазоне, вместо того, чтобы объединить все вместе, используйте git log --shortstat A..B.

Если вы хотитечтобы сделать это по дате, у вас есть пара вариантов:

  • Укажите один коммит, используя форму <branch>@{<date>}.Имейте в виду, однако, что это дает позицию этой ветви на данную дату.Это хорошо, если это долгоживущая локальная ветвь, но если она еще не существовала на эту дату, или это удаленная ветвь, которая перемещается большими скачками при получении, это может быть не то, что вы хотите.

  • Используйте опции --since и --until для git log.Это означает, что вам придется использовать два шага, если вы хотите получить общую сводку: один для определения коммитов на каждом конце диапазона, а другой для фактического сравнения.

Подробнее о том, как указывать коммиты, см. man gitrevisions.

1 голос
/ 10 мая 2011
git push origin your_branch --verbose

Это должно дать вам диапазон хэша в выходных данных.Теперь вы можете сделать:

git log sha1A..sha1B

Если вы хотите поэкспериментировать с первым добавлением --dry-run к толчку - толчок на самом деле не произойдет.

Но прежде чем вы нажмете, вытакже можете попробовать:

git log origin/your_branch..your_branch

Это покажет вам коммиты, которые вы нажмете.Если your_branch уже извлечен, вы можете просто выполнить:

git log origin/your_branch..

Это будет неявно соответствовать диапазону HEAD, который является вашей ветвью.

надеюсь, это поможет.

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