13

ブランチのリベース B を master に実行していて、競合が発生したとします。git は、入力として 3 つのファイルを使用してデフォルトのマージ ツールを開きます: file.LOCAL、file.BASE、file.REMOTE (名前は少し異なりますが、LOCAL、BASE、REMOTE はファイル名に含まれており、それらを区別する方法です) )。

ここで、mergetool のマニュアル ページによると、 $LOCAL は、現在のブランチのファイルの内容を含む一時ファイルの名前に設定されます。$REMOTE は、マージされるファイルの内容を含む一時ファイルの名前に設定され、$BASE は、マージの共通ベースを含む一時ファイルの名前に設定されます。

それは本当に私には意味がありません。LOCAL はブランチの現在の状態です。迷うところはBASEとREMOTE。だから私の質問は:

LOCAL の代わりにブランチ名を使用し、BASE と REMOTE 以外のより意味のある名前を git に使用させることは可能ですか? たとえば、ブランチ名が FeatureX で、BASE = master に存在するファイルの場合、git で LOCAL を FeatureX に、BASE を master に置き換えて、ソースがどこから来ているかをより明確にする方法はありますか? ? これは、リベースを行うときに特に問題になります。

4

2 に答える 2

9

LOCALの代わりにgitにブランチ名を使用させることは可能ですか?

私はそうは思いませんが、mergetoolでグラフィカル マージ ツールを宣言すると、その外部ツールを任意のタイトルで呼び出すことができます。

(マージツール calll スクリプトの抜粋)

t1="'$4 (current branch)'"
t2="'(common ancestor)'"
t3="'(to be merged)'"

    "C:/Program Files/Araxis/Araxis Merge/Compare.exe" -max -wait -merge -3 -a2 -title1:${t1} -title2:${t2} -title3:${t3} "$alocal" "$base" "$remote" "$result" 

そうすれば、何が何であるかをより簡単に確認できます。

于 2010-03-24T06:48:10.530 に答える
3

この説明が正しいかどうかは完全にはわかりませんが、BASEは、ファイルの両方のバージョンが同じになるポイントになります。これは、Gitツ​​リーで「親」と呼ばれるものかもしれません。

それらが分岐したとき、あなたは互いに競合しているLOCALとREMOTEになってしまいました。

于 2012-02-20T21:15:20.553 に答える