Есть ли способ использовать фильтрацию "git log --oneline" по хешу коммитов при сохранении имен веток? - PullRequest
2 голосов
/ 23 мая 2019

Я искал способ выделить определенный хеш коммита при использовании git log --oneline, и мне удалось сделать это с помощью:

# consider that 000000000 is the first 9 digits of the commit hash
git log --oneline | grep --color=always -E '^|000000000' | less -R

Это на самом деле работает очень похоже на git log --oneline и действительно выделяет коммит 000000000. Единственная проблема, однако, в том, что она теряет всю информацию о моих ветвях, которую git log --oneline дает мне.


Примеры:

# input:
git log --oneline

# output:
000000000 (myRemote/myBranch) my commit message
# input:
git log --oneline | grep --color=always -E '^|000000000' | less -R

# output:
000000000 my commit message

Хотя в последнем примере выделен 000000000, в нем отсутствует информация (myRemote/myBranch).

Итак, есть ли способ изменить вход, который я использую, чтобы я мог получить информацию как о выделении, так и о ветвях?

1 Ответ

2 голосов
/ 23 мая 2019

Вы можете добавить флаг --decorate в свой журнал, он будет работать, я только что попробовал (git version 2.21.0.windows.1).


При желании вы можете создать псевдоним, которому вы передаете хеш в качестве параметра, для удобства:

git config --global alias.find '!f() { git log --oneline --decorate | grep --color=always -E "(^|${1})"; }; f'

... а затем при поиске коммита deadbea7dad вы просто набираете

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