3

私と私の友人はいくつかの小さなプロジェクトに取り組んでおり、Git に問題があります。私が作成したメインリポジトリが 1 つあります。私の友人はそれをフォークして、自分のローカル マシンに複製しました。

いくつかの変更を加えると、次のようにしてコミットをリポジトリにプッシュします。

git add -u
git commit -m "message"
git push origin master

コマンドでリポジトリから変更を取得していますgit pull

私の友人はコマンドを実行して変更をコミットしています:

git add -u
git commit -m "message"
git push origin master

彼はgit pull upstream masterコマンドでレポから変更を取得しています。

それを行った後、リポジトリの同期に問題があります。私の友人がプル リクエストを作成すると、コンフリクトがあると表示されます...そしてコミットをプッシュするたびにコンフリクトが発生します。

友人が何らかの変更を加えてプル リクエストを作成した場合、git が競合することなく自分のコード行を私のレポに自動的に追加するようにするにはどうすればよいですか?

4

1 に答える 1

3

コードの同じ行を変更すると、明らかに競合が発生します。これは正常なことであり、発生させたいことです。テストしていないコードをマージすることはありません。

したがって、プル リクエストを送信する前に、それを送信する人はpull(基本的にはpull= fetch+ merge) リポジトリから最新の変更を行い、競合を解決し、そのバージョンが最新であることを確認する必要があります。

次に、PR を受け入れる前に新しいコミットをリポジトリにプッシュすると、PR が古くなり、自動的にマージできなくなります。そのため、自分の職場で友達のブランチをプルして競合を解決するか、友達pullをマスター ブランチに戻すか、などを行うことができます。

ただし、誰かと密接に仕事をするときは、同僚に執筆許可を与えることを常に好みます。彼が好きなようにプッシュできるように。

ここで理解しておくべき唯一の重要なことは、ブランチを別のブランチにマージする前に、ブランチが最新である (pullそして競合が解決されている) 必要があるということです。

于 2013-04-02T01:46:09.847 に答える