2016-11-08 11 views
2

git diffをやって、古いラインとは、現在のラインなど、お互いの隣に表示されます: 削除された行が追加されたコミットのハッシュを取得するには?

- @principal.connections.joins(:contact_infos) 
+ @principal.connections.joins(:node) 

はgitのコミットのハッシュを印刷するようになります任意のコマンド、またはパラメータ、そこにされています削除した行が追加されましたか?

- foo1234 @principal.connections.joins(:contact_infos) 
+ @principal.connections.joins(:node) 

git diffをやって、または意志別のコマンド:行@principal.connections.joins(:contact_infos)コミットfoo1234に追加され、中に@principal.connections.joins(:node)に変更された場合

例えば、bar1234コミットし、取得する方法があります削除された行と、それらが追加されたハッシュのリストを与えますか?私が来た

最も近いgit blameだったが、それだけで変更されたファイルに現在ある行、ないもののためにハッシュを与える/

答えて

2

あなたは一般的に、私はコミットの親を使用して、ファイルの古いバージョンをgit blameすることができます削除しました参照。例:次に

$ git blame git-mergetool.sh 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 356)  if test "$merge_keep_backup" = "true" 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 357)  then 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 358)    mv -- "$BACKUP" "$MERGED.orig" 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 359)  else 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 360)    rm -- "$BACKUP" 
f8750a0e (Junio C Hamano 2012-08-22 22:33:15 -0700 361)  fi 

あなたがgit showを使用してf8750a0eはあなたのようなもので、以前のバージョンのせいにしたい場合がありますすべてのスタイルの修正だったことが判明した場合:

$ git blame f8750a0e^ git-mergetool.sh 
44c36d1c (Charles Bailey 2008-02-21 23:30:02 +0000 276)  if test "$merge_keep_backup" = "true"; then 
b3ea27e4 (Charles Bailey 2008-02-21 23:30:34 +0000 277)  mv -- "$BACKUP" "$MERGED.orig" 
44c36d1c (Charles Bailey 2008-02-21 23:30:02 +0000 278)  else 
44c36d1c (Charles Bailey 2008-02-21 23:30:02 +0000 279)  rm -- "$BACKUP" 
44c36d1c (Charles Bailey 2008-02-21 23:30:02 +0000 280)  fi 

だからあなたの場合には、あなたはgit blame bar1234^ fileを使用することができますし、気になる行にはfoo1234というラベルを付ける必要があります。私の例のように、現在のバージョン、行が最後に変更されたバージョン、およびそのコミットの直接の親の間で、行が多く動いていることに気付くかもしれません。

+0

'あなたはgit blame bar1234を使うことができますし、気になる行にはfoo1234'というラベルを付けるべきです - 残念ながらそれは起こりそうにありません。 'git blame 1234 file.txt'を実行すると、気になる行に' foo1234'の代わりに 'bar1234'があります –

+0

ああ、私は魔法の'^'を逃していました!ニース! –

+0

@ClickUpvote:申し訳ありませんが、私のせいです。私はちょうど私の提案されたコマンドにそれを編集しました。私の「本当の」例では正しいことでした。 –

関連する問題