5 ответов:
у вас есть по крайней мере 5 различных способов просмотра фиксации, которую вы в настоящее время проверили в своей рабочей копии во время
git bisectсессии (обратите внимание, что опции 1-4 также будут работать, когда вы не делаете bisect):
git show.git log -1.- командной строке.
git status.git bisect visualize.я объясню каждый вариант подробно описан ниже.
Вариант 1: git показать
как поясняется в ответ к общему вопросу о том, как определить, какой коммит вы в настоящее время проверили (а не только во время
git bisect), вы можете использоватьgit showС-sвозможность подавления вывода патча:$ git show --oneline -s a9874fd Merge branch 'epic-feature'Вариант 2: git log -1
вы также можете просто сделать
git log -1чтобы узнать, на каком коммите вы сейчас находитесь.$ git log -1 --oneline c1abcde Add feature-003Вариант 3: bash prompt
в Git версии 1.8.3+ (или это была более ранняя версия?), если у вас есть приглашение Bash, настроенное для отображения текущей ветви, которую вы проверили в своей рабочей копии, тогда он также покажет вам текущую фиксацию, которую вы проверили во время сеанса bisect или когда вы находитесь в состоянии "отсоединенной головы". В приведенном ниже примере у меня в настоящее время есть
c1abcdeпроверил:# Prompt during a bisect user ~ (c1abcde...)|BISECTING $ # Prompt at detached HEAD state user ~ (c1abcde...) $Вариант 4: git status
также с версии git 1.8.3+ (и, возможно, раньше, снова не уверен), работает
git statusтакже покажет вам, что фиксация вы проверили во время деления пополам и когда вы находитесь в отстраненном состоянии головы:$ git status # HEAD detached at c1abcde <== RIGHT HEREВариант 5: git bisect visualize
наконец, пока вы делаете
git bisect, вы также можете просто использоватьgit bisect visualizeили его встроенный псевдонимgit bisect viewзапуститьgitk, так что вы можете графически просмотреть, какие коммиты вы находитесь, а также какие коммиты вы отметили как плохие и хорошие до сих пор. Я уверен, что это существовало задолго до версия 1.8.3, я просто не знаю, в какой версии он был введен:git bisect visualize git bisect view # shorter, means same thing
вы можете просто сделать:
git rev-parse HEADчтобы объяснить немного дальше:
git rev-parseэто основная команда git для интерпретации любой из экзотических способов, которыми вы можете указать имя фиксации иHEAD- это ссылка на ваш текущий коммит или ветку. (Вgit bisectсеанс, он указывает непосредственно на фиксацию ("отсоединенную голову"), а не на ветку.)кроме того (и легче запомнить) было бы просто сделать:
git show... по умолчанию показывая фиксацию, что
HEADуказывает. Для более краткой версии, вы можете сделать:$ git show --oneline -s c0235b7 Autorotate uploaded images based on EXIF orientation
$ git rev-parse HEAD 273cf91b4057366a560b9ddcee8fe58d4c21e6cbобновление:
другой вариант (если у вас есть теги):
(хорошо для именования версии, не очень хорошо для передачи обратно в git.)
$ git describe v0.1.49-localhost-ag-1-g273cf91или (как предложил Марк, перечисляя здесь для полноты):
$ git show --oneline -s c0235b7 Autorotate uploaded images based on EXIF orientation
если вы хотите извлечь только простой кусок информации, вы можете сделать это с помощью
git showС ...и попросите его не давать вам разницу с--no-patch. Это означает, что вы можете получить вывод в стиле printf всего, что хотите, что часто может быть одним полем.например, чтобы получить только сокращенный хеш (
%h) можно сказать:$ git show --format="%h" --no-patch 4b703ebесли вы хотите сохранить это в переменную среды в bash (вероятно, для людей хотите сделать) вы можете использовать
$()синтаксис:$ GIT_COMMIT="$(git show --format="%h" --no-patch)" $ echo $GIT_COMMIT 4b703ebполное список того, что можно сделать в
git show --help. Но вот краткий список свойств, которые могут быть полезны:
%Hcommit hash%hсокращенный хэш фиксации%Tхэш-дерево%tсокращенный хеш дерева%Pродитель хэшей%pсокращенные родительские хэши%anимя автора%aeэлектронная почта автора%atдата автора, временная метка UNIX%aIдата автора, строгий формат ISO 8601%cnимя коммиттер%ceкоммиттер email%ctдата фиксатора, временная метка UNIX%cIдата фиксатора, строгий формат ISO 8601%sтема%fсанированная строка темы, подходящая для имени файла%gDreflog селектора, например, рефы/тайник@{1}%gdукороченные reflog селектора, например, тайник@{1}
использовать
git show, который также показывает вам сообщение фиксации, и по умолчанию для текущей фиксации, когда не задано никаких аргументов.

Comments