2017-03-04 12 views
1

ここにシナリオがあります:git - confilictsを処理する方法

ユーザーAとBは同じソースコードを持っています。ユーザーAは変更=>追加=>コミット=>プッシュを行います。リモートリポジトリのソースコードが変更されました。

ユーザーBは、プルしないで変更を開始します。 (または、リモートのリポジトリの変更がの後にユーザBがリポジトリを引っ張った場合)そして、彼はまた押したいと思う。現時点では、競合が発生します。私は多くを検索して解決策を見つけることができませんでしたが、は手動でコンフリクトを編集します

質問:手動で競合を効率的に編集していますか?特に大きなプロジェクトには?アプローチは何ですか?

+0

[Gitのマージの競合を解決するにはどうすればいいですか?](http://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – 1615903

答えて

1

マージ競合を手動で管理するのは面倒な作業です。

git mergetoolを試してみてください。最初にmergetoolをインストールする必要がありますが、デフォルトのmergetoolが開きます。 あなたは、このようなmeldopendiffkdiff3tkdiffxxdifftortoisemergegvimdiffdiffuseecmergep4mergearaxisvimdiffemergeとして紛争を解決するのに役立ちますいくつかのmergetoolsがあります。

インストール後、インストールされているmergetoolが開き、guiが表示され、各競合の手順がわかり、マージ方法を選択できます。

IntelliJなどのIDEを使用する場合は、マージの競合を修正するためのツールが用意されています。

+0

ありがとうございました。また、それは崇高なエディタのためのいくつかの良いものと思われる。 'sublimerge'のように –

1

手作業による競合解決が道です。競合とは、開発者Bが変更されたコードに依存していることを意味します。つまり、開発者Aが行った変更にコードを適合させる必要があります。つまり、この競合を解決することです。

ときどき競合が自動的に解決されることがあります。場合によっては、単に「私たちの後」のようなオプションを選択するだけで解決することができます。しかし、gitの意味で矛盾がなくても、コードを修正しなければならない可能性があります。

たとえば、いくつかの引数を受け入れる関数some_funcがあります。開発者Aはsome_new_nameに名前を変更し、開発者Bは完全に別のコード領域でsome_funcに呼び出しを追加します。マージは矛盾なく行われますが、コードは正しく動作しません。

実際にコンフリクトがあると、1つしか持っていないよりも良いかもしれません - あなたが書いたコードが変更されるという早期の警告が表示されます。

関連する問題