2017-08-14 8 views
0

私はコミットメッセージに特定の単語が含まれている最新のgitコミットを参照するには?

$ git log - 5 
* adc24eb Jim > (HEAD -> demo) fixup 
* cb6a1a7 Jim > fixup 
* 60d7150 Jim > (origin/demo) Much prettier demo output. 
* a8112c2 Michael > Complete ugly demo: 

を行い、その後、a8112c2でいくつかの操作をしたいです。むしろ

$ git <command> a8112c2 

のように、それはSHAによってコミット参照するよりも、私は、その最初のコミットメッセージをコミット醜い%が最も最近のSHAにはgitで展開され

$ git rebase -i %ugly 
$ git show %ugly 
$ git reset --soft %ugly 

のようなものを入力したいです「醜い」という言葉が含まれています。

これについての魔法の構文は何ですか?

私はこれが以前に尋ねられていると確信しており、私はそれを見つけることができません。

答えて

4

man git-rev-parseはあなたの友人です。あなたがしたいように見えます:

:/<text>, e.g. :/fix nasty bug 
     A colon, followed by a slash, followed by a text, names a commit 
     whose commit message matches the specified regular expression. This 
     name returns the youngest matching commit which is reachable from 
     any ref. The regular expression can match any part of the commit 
     message. To match messages starting with a string, one can use e.g. 
     :/^foo. The special sequence :/! is reserved for modifiers to what 
     is matched. :/!-foo performs a negative match, while :/!!foo 
     matches a literal ! character, followed by foo. Any other sequence 
     beginning with :/! is reserved for now. 

したがって、たとえば:

git show :/ugly 
+0

あるいは、より直接的に、[gitrevisions(7)](https://www.kernel.org/pub/software/scm /git/docs/gitrevisions.html) – torek

関連する問題