私の研究では、データの数が少なくて済みます。そのうちの1つは前のコミットのSHA番号です。つまり、特定のコミット番号/ SHA番号を指定すると、その前にSHA番号を取得できるはずです。以前のコミットのSHA番号を取得するにはどうすればよいですか?
同じものを得るにはgitコマンドを手伝ってください。
私の研究では、データの数が少なくて済みます。そのうちの1つは前のコミットのSHA番号です。つまり、特定のコミット番号/ SHA番号を指定すると、その前にSHA番号を取得できるはずです。以前のコミットのSHA番号を取得するにはどうすればよいですか?
同じものを得るにはgitコマンドを手伝ってください。
git rev-list --parents -n 1 SOME_COMMIT
は、指定したコミットのSHAを親のSHAに与えます。
git log --format="%H" -n 1 <commit>~
は、ハッシュ(%H)だけを出力し、コミットの親(〜)から出力を1エントリに(すべての祖先を表示する代わりに)制限します。
へのコマンド任意の指定子をハッシュIDに変換するコマンドは、git rev-parse
です。は「親がコミットのコミットを見つける」を意味
構文はgitrevisionsからである、とあなたが入力することを好む方commit^
かcommit~
-useです。 commit
の部分は、ブランチ名、別のコミットハッシュID、特別な名前HEAD
、またはこれらの接尾辞付き表現の別のものを含む、ほぼすべての有効なコミット指定子になります。したがって
:
HEAD^
はHEAD
の親であり、そして:
HEAD^^
はそうでHEAD^
の親である、と。
チルダ構文はそう、実際に多くの帽子サフィックスの圧縮バージョンです:
HEAD~5
は同じことを意味します。チルダの後に番号が欠落している場合
HEAD^^^^^
を、Gitは想定していあなたは1
を意味しました。すべてこれが何を意味するのか
、一緒に入れ、ということです:あなたは、実際のハッシュIDを取得します
git rev-parse HEAD^
(またはHEAD~
)。しかし、普通のGitコマンドでは、代わりにHEAD^
またはHEAD~
と書くことができます。同様に、1234567
が有効な短縮コミットハッシュIDである場合は、1234567^
または1234567~1
と記述して、親コミットを参照できます。
(マージコミットがあるコミットは、その場合には一度にそれぞれの親1を抽出する、またはすべての親を参照するために利用できる多くの構文があり、二つ以上の親を持つ。ここでも、詳細についてはgitrevisionsを参照してください。)
+1:これは、マージコミットがいくつあるかを事前に知ることなく、すべての親を得る良い方法です。 '-n 1'の代わりに' --no-walk'を使うのが好きですが、その効果はまったく同じです。 – torek