問題タブ [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 の競合が発生します。git には適切な順序に関する情報がありません。もちろん、それを競合としてマークすることは一般的に正しいことですが、これらのファイルについて言うように、行の順序は無意味です。
gitに「ただ追加する」ように指示する設定はありますか? または、これらの競合を減らす他の規律はありますか?
git - 追加および削除された競合の解決 Git
release-x.x.x
マスターにマージしたいブランチがあります。ただし、プル リクエストを実行すると、何百ものマージ コンフリクトが発生します。これは、私が実行した Swift 3 の移行によるものだと思います。release-x.x.x
いずれにせよ、にマージするときにファイルのすべてのバージョンを使用したいと考えていますmaster
。私はやったcheckout release-x.x.x
とgit merge -s recursive -X ours master
。release-x.x.x
で競合を解決してからプル リクエストを作成し、master
すべてのコミット履歴を保持できるように、逆に実行しています。
を実行するgit status
と、次のような出力が表示されます。
added by us
の付いたものはすべて保持し、 のboth added
マークが付いたものも保持したいdeleted by them
ので、これらのファイルをステージングしました。と をどのように処理しdeleted by us
ますboth deleted
か? 試してみるgit rm Pods/FirebaseInstanceID/CHANGELOG.md
と、次のエラーが表示されますPods/FirebaseInstanceID/CHANGELOG.md: needs merge
。私はここで正しい軌道に乗っていますか?
git - git rebase 中に競合の解決を再試行する
私は非常に大規模なリベースの最中であり、競合を解決しながら使用していますgit rebase --continue.
複数のファイルの競合を解決しようとして途中で、私はそれを少し混乱させたことに気づきました。競合の解決を開始する前に、リベースのこの段階に戻る簡単な方法はありますか?
git rebase --abort
明らかに、他の競合の修正に費やしたすべての時間を無駄にしたくありません。
次のスタック オーバーフローの質問を見つけましたが、より明確な手順を実行できます。
git rebase 中に単一の競合解決をロールバックする方法
特に、-m
旗は何をしますか?path/to/wrong
リベースしているブランチの名前ですか、リベースしているブランチですか、それとも特定のコミットへの参照ですか?
git - Git の競合の原因を理解する
dev
、 、uat
、 の3 つの「メイン」ブランチで作業しmaster
ます。master
次に、新しい作業には「フィーチャー」ブランチを使用dev
しuat
ますmaster
。
への PR 中、uat
特に 1 人の開発者は、生成された CSS でほぼ一定のマージ競合を確認します(私たちは SASS と gulp を使用しています)。
これは予想外に聞こえるかもしれませんが、差分は非常に驚くべきものです。
また:
単純な削除、数行の削除、または単に>
競合が発生する理由がわかりません。
当初は行末などを見ようと思っていたのですが、これが生成されてしまい…</p>
どのように原因を調査しますか?なぜこれが起こるのか誰にも分かりますか?
git - Git コンフリクト ブランチを削除する方法
すると、次の出力が得られます。
では、最後の競合ブランチとは何ですか? それをチェックする方法、その内容を確認する方法、および削除する方法がわかりません(これが最終的にやりたいことです)。
PSこれは少し前に発生しましたが、今は覚えていません。放置していたのですが、気になったので直したいと思います。
更新:Torek の回答が役に立ちました。ファイルが見つかりませんでした.git/packed-refs
。ディレクトリ.git/refs/heads
を見つけて、そこにある不要なファイル/ブランチを削除しました。それはそれを修正したようです。
re: 原因は、私が使用しているエディターは Atom (github から) であり、エディターから git コマンドを実行するためのパッケージをインストールしました。そのパッケージがおそらくその競合ブランチを作成したと思います。
git - マージの競合を誤って解決しているユーザーを見つけますか?
ユーザーが「誤って」gitマージの競合を修正し、物事を壊すという問題がよく発生します。
競合があった最近のマージを見つけるために使用できるパラメーターがありませんかgit log
、どの git ユーザーがその競合を解決しましたか?
場合によっては、これは誰かが master を「test」ブランチにマージするときであり、多くの人々の作業が含まれている可能性があります。
ワークフロー:-
- マスターに基づいて機能ブランチでいくつかの作業を行います。
- テストのために機能ブランチを「テスト」ブランチにマージします。
- マスターは、最新の状態に保つためにテスト ブランチにマージされることがあります。
git ワークフローは大幅に改善し、より厳密にする必要がありますが、マージの競合を誤って修正しているユーザーを見つけるために短期的にできることはありますか?
github - マスターとブランチの両方が bitbucket で変更された場合、マージするとどうなりますか
ローカル マシンに master からのブランチがあります。merge
レポをマスターする方法を知っています。しかし、質問はこれです。
他の開発者がマスター リポジトリに変更をプッシュして変更したと考えてください。同時に、ブランチからマスター リポジトリに変更をマージしようとしています。
この状況でどうなるか。
このような状況ではどうすればよいでしょうか。私は自分のブランチから次のことをしようとしました。
- ->で私の変更を追加しました
git add *
- 次に -> でコミット
git commit -m "my commit"
- 次に、-> で私のブランチにプッシュします
git push -u origin my_branch_name
- 次に、リポジトリを master に変更しました ->
git checkout master
- 次に、ブランチを master にマージ ->
git merge my_branch_name
この段階までは成功しました。次に、次のコマンドでプッシュしようとしました(数分前に、別の開発者がマスターにプッシュしました)
git push origin master
それから次のように言います。
この段階で、私は何をすべきか。
- マージされたステップの後に取得して
pull
からプッシュする必要があります (この段階でプルを取得すると、どうなりますか?) または git stash
のようなことをしなければならないのでしょうかpush
。
これであなたの助けを願っています。どうもありがとうございました。
git - パスが制限された「git log」が興味深い競合解決を伴うマージコミットを省略するのはなぜですか?
ファイルの履歴に「興味深い」競合解決を伴うマージ コミットが含まれている場合、 はgit log
それをスキップします。これはなぜですか? また、そのコミットを含めるにはどうすればよいですか?
HEAD
(「興味深い」とは、単にバージョンを取得したり、そのままにしたりしない解決策を意味しMERGE_HEAD
ます。)
たとえば、このサンプル リポジトリでは、問題を説明する簡単な履歴を用意しました。
マージ コミットは、まったく新しいバージョンのE
行を導入することで競合を解決しました。
ただし、これについてはgit log
完全に説明します。リストされているコミットは、次のE
行の現在の状態を説明できませんtest.txt
。
git log
マージコミットを含めることができるオプションはありますか?
のような他のコマンドは、git blame
その行がマージ コミットE
で最後に触れられたことを示します。9fc...
(注: 上記の出力は git version によって生成され2.11.0
ます。)