2

2 つのブランチをマージしました (Eclipse マージ ツールを使用)。

コミットすると、コミットにはブランチの 1 つだけが親 (元のワークスペース HEAD) として含まれます。その理由については後で掘り下げますが、今すぐこれを適切にコミットする必要があります (マージには多くの作業が必要でした)。

他のブランチへの参照を含めるようにコミットを修正するにはどうすればよいですか? ファイルの内容はすべて問題ありません。コミットに 2 つの親を持たせたいだけです。

4

1 に答える 1

3

まず、すでにコミットしている場合は、実行git reset --soft HEAD^して元に戻します。

方法 1

(通常は)にMERGE_HEADファイルを作成します。これには、マージするブランチの先端( を使用して取得できます)(および動作を模倣するための空の行)が含まれます。そしていつものようにコミットします。GIT_DIR/.gitSHA-1git show-refgit merge

方法 2

また、必要に応じて、git 内部をいじることなく実行できます。

  • .git作業ディレクトリ(ディレクトリなし)のコピーをどこかに保存します
  • 行うgit reset --hard
  • 行うgit merge branch_to_merge_with --no-commit
  • 作業ディレクトリからすべてを削除します (ディレクトリを除く.git)
  • 保存されたコピーから作業ディレクトリの内容を復元する
  • 変更を追加してコミットする

PSgit merge --squashオプションを使用した場合、またはMERGE_HEADファイルが何らかの形で失われた場合に発生する可能性があります。

于 2012-07-08T00:40:52.363 に答える