Visual Studio 2013 Update 4とgit(Visual Studio Onlineでホストされています)を使用しています。 2つのローカルコミットと2つのコミットがリモートブランチにあります。コミットするローカルの変更はありません:
Visual Studioでプル(またはフェッチ)しようとすると、エラーが発生します。
エラーが発生しました。詳細メッセージ:1つの競合によりチェックアウトが妨げられる
はい、競合があります。マージする必要があります。そして、 このページによると 競合を解決するために リンクが提供されるべきです。 しかし、VSには表示されません。
私はVSの外でマージを行うことができますが、それはポイントではありません。同時に、同じセットアップを実行している同僚は問題なくマージできます。 VSの何が問題になっていますか?
追伸構成が乱れている可能性のあるmsysgitがインストールされています。これによれば post 私のグローバル.gitconfig
は次のようになります。
[user]
mail = [email protected]
name = trailmax
email = [email protected]
[core]
excludesfile = C:\\Users\\trailmax\\Documents\\gitignore_global.txt
autocrlf = true
editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor
[diff]
tool = vsdiffmerge
[difftool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepbackup = false
trustexistcode = true
[merge]
tool = vsdiffmerge
[mergetool]
Prompt = true
[mergetool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
keepbackup = false
trustexistcode = true
[credential]
私の場合、 Resolve the conflicts
オプションlocal changesがまだコミットされておらず、同期しようとしたためリモートで変更します。 ローカル変更をコミットし、同期を再試行するとすぐに、Resolve the conflicts
リンクが表示されました。
ここでのポイントは次のとおりです:commit最初に変更を加えてから、同期を試みます。 mergeが開始され、Visual Studioにより各conflictsを通過できます。
ライネルの回答に示されているように、競合を解決するオプションがない場合、「エラーが発生しました。詳細メッセージ:1競合によりチェックアウトが妨げられます」という同じ問題が発生しました。
その理由は、プルされるファイルと同じファイルが追跡されていないためです。追跡されていないファイルを削除し、プルを再試行しました。
同じ問題がありました。含める必要がある未追跡のファイルがあったことがわかりました。したがって、追跡されていないファイルの[変更]タブを確認してください。
どちらのブランチにも「変更」(未追跡またはその他)がリストされていないため、他の回答は機能しませんでした。
私はコマンドラインに行くことにしました:
git merge BRANCH_NAME
。 (私の作業ブランチ/マージ「から」)プル中の競合が行末文字に関するものである場合:
git config --global core.autocrlf false
これにより、自動eol変換が回避されます。
詳しくは、「 なぜgitが未変更のファイルの各行が変更されたと考えるのか 」で、作業ツリーでその状況を検出する方法(git diff --Word-diff-regex=.
)。