ソフトウェア開発がますます複雑になるにつれて、共同作業がより重要になります。効率的かつ秩序正しく共同作業するために、開発者はバージョン管理ツールを使用します。Git もその 1 つです。ただし、複数の人が同じコードを同時に変更すると、競合が発生する可能性があります。この記事では、Git が競合を検出する方法とその解決方法について説明します。
Git を共同開発に使用する場合、複数の開発者が同じコード ファイルの同じ場所に変更を加えた場合、Git はそのような状況をコード競合として扱います。たとえば、チームの 2 人の開発者が同じコード ファイルの同じ行にコードを追加した場合、Git は競合するファイルをどの変更を保存すればよいかわからないため、Git はその変更を競合として扱います。
Git は 2 つのブランチ間の差異を比較することによって競合を検出します。ある開発者のブランチ (ブランチ A) と別の開発者のブランチ (ブランチ B) の両方が同じコード ファイルを変更する場合、Git はブランチをマージするときにこの問題を発見します。この時点で、Git はバージョン コントロール サーバー上のコード ベース (マスター ブランチ) と開発者の作業ブランチ (ブランチ A とブランチ B) の違いを比較して、コードの競合が発生したかどうかを判断する必要があります。 Git では、ブランチをマージするときに次の状況が発生します。
どちらの場合も、Git は検出された競合情報を現在のブランチの情報に保存するため、開発者は競合を解決するときにこの情報を使用できます。
Git は競合を検出すると、開発者に手動介入によって競合を解決するよう求めます。 Git は、開発者が競合を解決できるようにするためのツールやコマンドを多数提供しています。
Git はコードの競合を検出すると、競合マークが付いたファイルを生成します。このファイルには、2 つの異なるブランチから取得された競合するコードの異なる差分が表示されます。コードの競合を表示するには diff コマンドを使用できます。コマンドは次のとおりです:
$ git diff [conflicted_file]
このコマンドはコードの競合機能を表示し、相違部分を表示します。
Git には、競合を視覚的に解決するために使用できる Mergetool ツールも提供されています。 Mergetool は競合ファイルを開いて 3 方向のマージを提供します。これにより、開発者はコードの競合を解決するための決定を主導的に行うこともできます。 Linux システムでは、次のコマンドで Mergetool を起動できます:
$ git mergetool
Git 競合ファイルの最終形式は次のとおりです:
<<<<<<< HEAD # 当前分支改动 Hello World! ======= Bonjour tout le monde! # 合并的另一个分支修改 >>>>>>> branchA
この場合、開発者は競合を解決するためにファイルを手動で変更する必要があります。通常、テキスト エディタを使用して競合を含むファイルを開いて競合を手動で解決できます。すべての競合を解決した後、次のコマンドを使用して変更を Git リポジトリにコミットできます。 , Git は強力で安定したバージョン管理ツールですが、複数人で共同開発すると競合が発生する可能性があります。これらの競合を解決するには、開発者が競合を解決できるように Git が提供するツールとコマンドの使用方法を学ぶ必要があります。 Git の競合がどのように処理されるかをよく理解し、理解することで、競合を簡単に解決し、共同作業をより効率的かつ秩序正しく行うことができます。
以上がgit が競合を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。