Visual Studio Codeはgitとのマージの競合を解決する方法?


106

私は自分のブランチを別のブランチとマージしようとしましたが、マージの競合がありました。Visual Studio Code(バージョン1.2.1)ですべての問題を解決しましたが、コミットしようとすると次のメッセージが表示されます。

変更をコミットする前に、マージされていない変更を解決する必要があります。

私はそれをグーグルで試しましたが、なぜそれが私の変更をコミットさせないのかを見つけることができません、すべての衝突が消えました。


1
あなたが言ったことは正しいですが、それは問題の問題を解決しません。私は問題のマージ競合のすべてをすでに解決したことを明示的に述べました。
annedroiid

回答:


109

VSCodeを使用すると、次のUIでマージの競合を簡単に見つけることができます。 ここに画像の説明を入力してください

(トップバーがない場合は、 "editor.codeLens": true、ユーザー設定します)

現在の変更とサーバーからの変更を示します。これにより、競合を簡単に解決できます-上のボタンを押すだけです<<<< HEAD。です。

複数の変更があり、それらすべてを一度に適用したい場合-コマンドパレットを開き([表示]-> [コマンドパレット])、「merge」と入力し始めます- Merge Conflict: Accept Incomingなどを含む複数のオプションが表示されます。


1
最新のアップデートを入手しましたか?各行に表示されます
Sajeetharan '11


1
これらのマージを取得する方法、Visual Studioコードの競合オプションを解決する方法。
user630209

1
それを有効にする方法、ショートカット?競合ファイルにそのオプションが表示されません。
user630209

1
あなたはCodeLensを有効にする必要がありますので、これらのオプションは、CodeLensを通じて示されたされている@RyeGuy(参照code.visualstudio.com/Docs/editor/...を)。
GeriBorbás18年

71

試行錯誤の末、マージの競合があったファイルをステージングする必要があることがわかりました。マージをコミットできます。


1
はい正解。コミットの競合であろうと、プッシュしようとしているローカルコミットであろうと、コミットは、そのコミットをプッシュする前にステージングする必要があります。
surendrapanday

1
git add .すべてのファイルをステージングしないと混乱する場合は、プロジェクトのルートディレクトリにいるかどうかを確認してください。それを理解するためにいつか私を取りました。次にgit add .、すべてのファイルをステージングし、それによって私に許可されましたgit merge --continue
ベンサディク

マージの競合を解決した後、マージされた変更をステージングする前に、まず競合するファイルを保存する必要があります。
nclark

22

「マージボタン」を見つけるのに苦労している人のために。

マージオプションの付いた小さな電球アイコンは、「マージ競合マーカー」を正確にクリックした場合にのみ表示されます

<<<<<<<

手順(VS Code 1.29.x):


19
  1. 左側の「ソース管理」ボタンをクリックします。
  2. サイドバーのMERGE CHANGESを参照してください。
  3. これらのファイルにはマージの競合があります。

VSコード>ソース管理>変更のマージ(例)


1
以前は「現在の変更を受け入れる|受信の変更を受け入れる...」というオプションを使用していましたが、これらのオプションは行から消えただけです。このオプションを再び表示する方法はありますか?
jet_choong

15

表示されるエラーメッセージは、Gitがマージの競合を解決していないとまだ考えている結果です。実際、あなたはすでに持っていますが、Gitにこれを追加したことを伝える必要があります、解決されたファイルをインデックスにすることで。

これには、競合解決せずにファイル実際に追加するだけの副作用がありますが、Gitはまだそうだと考えます。だからあなたは本当にあなたが衝突を本当に解決したことを確認することに熱心でなければなりません。コミットする前にビルドを実行してコードをテストすることもできます。


3

VS Code 1.38の場合、または「電球」ボタンが見つからなかった場合。競合の上にあるグレー表示のテキストに細心の注意を払ってください。実行できるアクションのリストがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.