を含まない最も早いコミットをと指定してgitでコミットを見つけることに興味があります。gitで行が含まれていない最初のコミットを取得
私はgit blame --reverse
コマンドを認識していますが、の行を含む最後のコミットはで、これは同じではありません。私はそれをgit log --reverse --ancestry-path <commit shown by blame>..HEAD
と組み合わせて使ってみましたが、成功するために必要なコミットを見つけることができましたが、それは退屈なことがありました。
は、私はAが行が含まれていますが、Gにはないことを知って、私は次のグラフ
/----G---H---I
/ \ \ \
A----B---C---D---F--G
\/
X
を持っていると言います。しかし実際に削除したコミットはXでしたが、git blame --reverse A..G
を実行すると、その行の最後のコミットはIでした。git log --reverse --ancestry-path I..G
を実行すると、Fがマージされていることがわかりますので、もっと深く掘り下げる必要がありますgit blame --reverse A..D
を実行すると、Hが返されます。次に、Gを見つけて、最後にAを見つけてXを見つけることができます。
これはまれなシナリオではありませんが、同様の時間にメインブランチにマージされ、削除されたコードを含むコミットをすべて分岐しました。
コミットXをすぐに返すコマンドがありますか?または少なくともそれを見つけるより早い方法がありますか?
[削除された行をどのように「責めるのですか?」(http://stackoverflow.com/questions/4404444/how-do-i-git-blame-a-deleted-line)の可能な複製 – smarber