質問

ファイルが両方のブランチで編集されたときにGitにファイルの手動解決を強制させる方法はありますか?

私の問題は、あるブランチからの変更のいくつかと、他のブランチからの変更のいくつかが欲しいということです。これらの変更は常に互いに影響を与えるわけではありませんが、アルゴリズムは常に正しい変更を選択しているわけではありません。

気づいたことの1つは、3者間マージのベースファイルが期待していたものではないことです。 Gitが1つのブランチから選択したファイルをベースとして使用することは可能ですか?

正しい解決策はありません

他のヒント

gitがファイル内の競合を検出した場合、競合を修正するために、編集(またはマージツールの使用)を常に求められます。この場合、ステージング前に好きなように修正できます。

特定のファイルでgitが競合を検出しなかったが、他の場所で競合を検出した場合、マージコミットを行う前にいつでもその特定のファイルを修正して修正を追加できます( git add )。

この場合、 git show HEAD:path / to / file および git show MERGE_HEAD:path / to / file 。たとえば、エディタで開く場合は、 git show の出力を一時的にリダイレクトできます。

ファイルを修正し、その他の競合を解決したら、修正をステージング( git add )して、マージコミット( git commit )を実行できます。

gitがコミットを検出しなかった場合、それ以上プロンプトを表示せずにマージコミットします。

この場合でも、ファイルを修正できます。 2つの親バージョンには、 git show HEAD:path / to / file および git show HEAD ^ 2:path / to / file からアクセスできます。

ファイルを修正したら、ステージング( git add )し、 git commit --amend でマージコミットをやり直します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top