SourceTree + Beyond Compareを使用して、Gitの競合を解決します
Sourcetree Beyond Compare Resolve Git Conflicts
ビジュアルSourceTreeプラグインbeyondCompareとの競合を解決します
1.建設紛争
(1)server.xmlファイルの40行目の内容を変更し、プッシュをリモートライブラリに送信します
(2)他の40の作業ディレクトリも、ファイルの下位40行を変更し、リモートライブラリにプッシュしました。
プッシュすると、次の問題が発生します。
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master Pushing to root@xxxxx:xxxxx/test.git To root@xxxxx:xxxxxx/test.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'root@xxxxx:xxxxxx/test.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. Completed with an error, see above.
プロンプトリモートが更新されました。ローカルバージョンが低すぎます。最新のコードをプルしてから、もう一度プッシュしてください。
(3)次に、以下に示すように、プルコードは競合に対してローカルになります。
2、外部比較ツールを構成します
(1)ソースツリーを開く---->ツール---->オプション。
(2)以下に示す構成によると:
(3)ユーザーディレクトリにあります .gitconfig ファイルが開かれます(例:C: Users %username%。gitconfig)。
以下の情報を追加して保存してください。
[user] Name = configured git account Email = Mailbox when configuring git [core] autocrlf = true [difftool 'sourcetree'] cmd = 'd:/Program Files (x86)/Beyond Compare 3/BComp.exe' '$LOCAL' '$REMOTE' [mergetool 'sourcetree'] cmd = 'd:/Program Files (x86)/Beyond Compare 3/BComp.exe' '$LOCAL' '$REMOTE' '$BASE' '$MERGED' trustExitCode = true [diff] tool = sourcetree [difftool] prompt = false [merge] tool = sourcetree [mergetool] prompt = false
3.競合を解決します
(1)ローカルコピーの一時ファイル---->右---->競合の解決---->外部マージツールを開きます。
Byynd Compareソフトウェアの起動にはしばらく時間がかかります。その後、次の情報が表示されます。
(2)次に、Beynod Compareツールを閉じると、競合する感嘆符がなくなり、1つになります。 .orig ファイルが生成されます。次に、それを選択します .orig ファイル、右クリック---->削除。
次に、コミットしてプッシュします。
追加:競合が発生する可能性のある別の状況
プルは次のように表示されます。
it -c diff.mnemonicprefix=false -c core.quotepath=false pull local-server-aggregator develop /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell:3: warning: Insecure world writable dir /usr in PATH, mode 040777 From 192.168.0.200:weitoo/server-aggregator * branch develop -> FETCH_HEAD Updating b0c5c94..40cef3b error: Your local changes to the following files would be overwritten by merge: server/conflict.file Please, commit your changes or stash them before you can merge. Aborting
上記のメッセージは、サーバー上で新しいコードをプルするために、ローカルの変更をステージングする必要があることを示しています。
(1)次に、一時的な処理を続行します。
-
[保存(スタッシュ)]をクリックします。名前だけです。これは、最後のサーバーバージョンとローカルの変更の違いです。削除しないでください。マージは成功し、その後削除されます。
-
プルはサーバーコードをプルします。今回は、ローカルコードがサーバー上のコードになります。
- [ストレージ]-> [アプリケーションストレージ領域]をクリックします。今回は、以前の変更をローカルにマージします。今回は、以下に示すように、競合が発生します。
git -c diff.mnemonicprefix=false -c core.quotepath=false stash apply root@xxxxx{0} Auto-merging server/server.xml CONFLICT (content): Merge conflict in server/server.xml
(2)上記の競合解決方法と同様に、競合ファイルを表す感嘆符がソースツリーに表示されますが、少し異なります。左端のバージョンがリモートバージョン、中央がリモートバージョン、最後がリモートバージョンです。ローカル変更。
これは、操作方法に関連しています。最初にローカル変更を一時的に保存し、最初にリモートコードをプルします。今回はローカルがリモートコードになり、最後に一時ストレージとマージして、リモートがローカル変更になります。
(3)上記の競合の処理方法と同じです。