1. ホーム
  2. git

コミットをチェリーピックし、オリジナルのSHAコードを保持する

2023-09-10 01:27:47

質問

元の SHA コミットを維持したまま、取得したリモートのコミットをチェリーピックしたいと思います (私の現在のブランチは、以前の状態にリセットしたこのリモートに基づいています)。

どのように解決するのですか?

gitのSHAハッシュは、さまざまな情報から計算されます。

  1. 以下の情報 ツリー 基本的には、そのコミットが現れたブランチのリポジトリの現在のコンテンツです。
  2. の SHA は 親コミット .
  3. コミットメッセージ .
  4. 著者情報 : 名前、電子メール、タイムスタンプ。
  5. コミッター情報 : 名前、メールアドレス、タイムスタンプ。

チェリーピックしたコミットを編集して、ツリー、コミットメッセージ、作者、コミッターの情報がまったく同じになったとしても、親コミット(またはマージコミットを扱う場合はコミット)のSHAは常に異なるものになります。そのため、チェリーピック後に同じ SHA ハッシュを生成することはできません (SHA コリジョンを見つけない限りは ;) )。