問題タブ [git-merge-conflict]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Gitマージの競合-リモートファイルが削除され、ローカルファイルが変更されました
別のブランチからの変更をマージしましたが、リモートブランチでファイルが削除されたが、ローカルブランチで変更があったため、競合が発生しています。
ファイルを削除したいのですが、試しgit rm path/to/file
ましたが、と表示されますfile: needs merge
。ファイルを削除してマージをコミットする最良の方法は何ですか?
git - pom.xmlのバージョンタグでのみGitマージの競合
pom.xml
マスターをブランチにマージするときに、バージョンタグでのマージの競合を回避する方法はありますか?私はかなりの数のpomファイル、80を持っています、そしてそれらのすべてはマスターのものとは異なる同じバージョンを持っています。git mergetool
バージョンタグのためだけに80個のpomファイルを実行するのは面倒で時間がかかります。
git - 同じ「git rebase」競合を何度も解決しなければならないのはなぜですか?
私がそうgit rebase branch1
するとき、branch1-local
私は衝突します。競合を解決し、実行しgit add <conflicted-add>
てgit rebase --continue
から、git が要求するとおりに実行します。その後、新しいコミットが適用されます。新しい競合が表示されます。しかし、同じファイルで再び同じ競合です。git add
、 、をもう一度実行しgit rebase --continue
、リベースする各コミットに対してこれを繰り返すまで、すべてを繰り返します。
リベースによって、同じ競合解決を何度もやり直さなければならないのはなぜですか?
git - vimdiff を使用して git マージの競合を解決するにはどうすればよいですか?
ブランチをgitのマスターにマージしたところ、下の画像でAutomatic merge failed; fix conflicts and then commit the result.
実行git mergetool
され、vimdiffが開きました。vimdiff の使い方がわかりません。ここにある各パネルの意味と、マージの競合を修正するにはどうすればよいですか?
git - git apply で --3way を使用すると、mergetool が開かないのはなぜですか?
-3 オプションで git apply を使用できない理由:
git - 特定のファイル ("ours"、"mine"、"irs") の Git マージ戦略を選択します
後のリベースの最中ですgit pull --rebase
。マージの競合があるファイルがいくつかあります。特定のファイルに対する「彼らの」変更または「私の」変更を受け入れるにはどうすればよいですか?
通常、ファイルまたはマージ ツールを開いて、すべての「自分の」または「自分の」変更を手動で受け入れるだけです。しかし、便利な git コマンドが欠けているのではないかと思います。
また、各ファイルのマージ戦略を選択できるのは、どのファイルが競合にヒットし、競合が何であるかを確認した場合のみであることに注意してください。
git - gitマージの競合を防ぐ方法「マージされていないパス」「それらによって追加された」
ブランチ B をブランチ A にマージしています。
エラーが発生します:
git "Added by them" の競合の原因と、それを防ぐにはどうすればよいですか?
git - 分岐したブランチ間のチェリーピック競合をコミットせずに解決する
分岐した 2 つのブランチ ( masterとfeature ) を取得しました。
C2 と C4 は、2 つのブランチの最終的なマージ/リベースには入れたくない、一時的なコードを含む単純なダーティ コミットです。
私は通常、次のことを行います。
しかし、今回は競合する C3 があり、コミットを選択できません。
私が試したのは、C3 をフィーチャーブランチにリベースして、チェリー ピッキングの際に競合が発生しないようにすることです。
今、私はこれを手に入れました
問題ないようですが、マスターにもう一度チェリーピックしようとすると、まだ競合が発生します(いくつかのファイルから削除した空のスペースで)。
Git は、競合を解決し、ファイルを追加し、コミットするように指示しています。競合は手動で解決できますが、競合を解決するためだけにコミットしたくありません。
実装に直接関係のないことについて、履歴にコミットすることは避けたいと思います。コミットメッセージとして何を書くべきかさえわかりません。
- リベース後も競合が発生するのはなぜですか?
- そして、追加のコミットなしでC5をマスターにマージ/チェリーピックするにはどうすればよいですか?
私は通常、「役に立たない」マージコミットを回避し、コード変更に関するコミットだけを行うことができるので、チェリーピックすることを好みます。その後、ブランチを削除します。しばらくすると、もう必要ないと確信しています
[[ 編集 ]]
奇妙な動作は、C3 で変更されていないファイルで C5 と C3 が競合することです。
実際、検出されたすべての競合は、マスター ブランチでは空です。
「解決」する必要があるのは、競合するファイルから競合タグを削除することだけです。
- 対立の理由がわからない
- 手動で解決してから、新しいコミットを作成せずにマージ/チェリーピックしたい
- コミットは、将来削除されるブランチとのいくつかの競合を解決するだけです
- ブランチを削除すると、そのコミットはリポジトリ履歴に意味/位置がなくなります
[[ 編集 2 ]]
さらに、cherry-pick master/C3をフィーチャーにgit しようとすると、次のようになります。
コミットに追加された変更はありません (「git add」および/または「git commit -a」を使用) 以前のチェリーピックは空になりました。おそらく競合の解決が原因です。
反対方向 ( featureからmasterへ)で競合が発生する理由がわかりません
[[ 編集 3 - 最初からリトライ! ]]
これも私が試したものです。
master_copyとrepeat_featureという名前の最後のコミットとして C3 を使用して、 masterブランチの 2 つのコピーを作成しました。
git checkout master
/git branch master_copy
/git branch repeat_feature
- フィーチャーブランチから C5 までのすべてのコミットを、repeat_featureにチェリー ピック
git checkout repeat_feature
/git cherry-pick C2^..C5
(機能から)
- (競合はありません)
- repeat_featureからC5 をmaster_copyにチェリーピックしようとしました
- repeat_featureが C3 から開始されたことを思い出してください (したがって、競合があった場合は、C2 から C5 へのチェリー ピッキング中にそれらを発生させる必要があります)。
git checkout master_copy
/git cherry-pick repeat_feature_C5
私はまだ同じ競合を持っています!
同じ C3 コミット (ブランチをrepeat_featureブランチにクローンしたとき) から開始し、同じ C3コミット ( master_copyに) をチェリーピックしようとしたとしても!
何が起こっているのか、なぜこれらの空の競合が発生して機能をマスターブランチに移動できないのか、まったくわかりません。
ここでは専門家の提案が必要です。
git - 同じコードでの作業を回避し、後で競合を回避するための git のチェックはありますか
マージの競合が発生すると、問題を解決するために計画外のコード変更が行われます。他の人が私と同じコード セクションで作業しているかどうかを確認し、競合が発生する前に協力することはできますか?