GITのマージ競合を解決する方法

Gitnomaji Jing Hewo Jie Juesuru Fang Fa



この投稿では、お見せします GITのマージ競合を解決する方法 。 GITを使用すると、開発者はメインコードベースからブランチを作成して独立した変更を加えることができます。これらの変更は、既存のコードにマージできます。これにより、チームは他の人がタスクを完了するのを待つことなく並行して作業することができます。



  GITのマージ競合を解決する方法





ただし、異なるブランチでコードの同じ部分が変更されている場合、マージ競合が発生する可能性があります。 GITは常にこれらの競合を単独で解決できるとは限りません。そのような場合、手動で介入して修正する必要があります。





GITのマージ競合を解決する方法

いくつかの方法があります GITのマージ競合を解決します 、ワークフロー、ツール、および快適性レベルに応じて。 GITコマンドを使用して端末で直接解決したり、VSコードなどのテキストエディターを使用したり、Github Desktop、Sourcetree、GitkrakenなどのGUIツールに依存したりできます。競合がどのように発生するか、およびGitおよびVisual Studioコード(VSコード)を使用して簡単な例の助けを借りてそれらを解決する方法を理解しましょう。



githubアカウントに移動し、で新しいリポジトリを作成します readme.md ファイル。このリポジトリに名前を付けてみましょう マージconflict-demo

  新しいリポジトリgit

次のコミット(メインブランチ)で、 readme.md いくつかのテキストコンテンツをファイルして追加します。変更をコミットします。



注記: リポジトリを作成した後、readme.mdを編集する必要はありません。このステップの目的(ここで)は、メインブランチの変更をシミュレートすることで、同じファイルも変更する異なるブランチをマージするときに競合が発生するようにすることです。

行きます コード>クレイジー lとリポジトリをコピーします https リンク。

ブルーイエティドライバーズウィンドウズ10

  githubリポジトリのリンクをコピーします

次に、ローカルコンピューターにディレクトリを作成します。類を挙げてください TWC_GIT_MERGE_DEMO 。対コードでこのディレクトリを開き、端末を起動します( 3つのドット>ターミナル>新しいターミナル )、および以下を使用してGitHub Repoをクローンします。

git clone https://github.com/sangeetaghera2710/merge-conflict-demo.git

次に、クローン化されたリポジトリに移動し、名前の新しいブランチを作成します feature1

0C368C4E795806EFB48D8847775162B95E99B94

  VSコードのクローンリポジトリ

readme.mdファイルにいくつかのテキストを追加してから、ステージと変更をコミットします。

techspot safe
7550DA6365563CE554CC337721507D3E7C15BEC

この例では、DF82F619B34EE581735E611B6F6F53A444647A034E8の代わりに、981F371F73E9BBA616BE26B26DE4AB6D22E9521AFを使用しました。
git add .ステージはすべてファイルを変更しますが、DF82F619B34EE581735E611B6F53A444647A034E8ステージのみが指定されたファイルのみです。また、git statusを使用して、作業ディレクトリとステージング領域の現在の状態を表示します。

次に、メインブランチに戻り、名前の別のブランチを作成します 特徴2

git checkout main
git checkout -b feature2

今すぐ編集します readme.md ファイルですが、別のテキスト行を追加します。繰り返しますが、ステージとコミット:

15120E7E1CBFD6D22B3D0F7605ED54791293A5

  feature2ブランチに変更が追加されました

次に、メインブランチに戻り、feature1をマージします。

00A447E33C7C787DCAF4EC5ADDA4A32C9A7F7

このマージは、競合なしに完了するはずです。

  gitマージの成功

次に、に切り替えます 特徴2 更新されたメインをブランチしてマージします。

86319972F8517A70CF3B467C7FE8AEB0CFF1A66

今回は、両方のブランチが同じセクションを変更したため、readme.mdファイルでマージ競合が発生します。

  競合をマージします

読む Gitで2つの枝をマージする方法

PC用の脱出ゲーム

マージの競合を解決します

マージの競合が発生すると、GITは影響を受けるファイルに特別なマーカー(<<<<<<、======== >>>>>>>)を追加して、各ブランチの競合するセクションを強調します。これらのマーカーは、競合を識別するのに役立ち、マージを最終化する前に、どのバージョンを保持するか、変更を組み合わせる方法を手動で決定できます。

VSコードで競合ファイル(readme.md)を開きます。上記の画像に示すように、競合マーカーが表示されます。

VSコードは、競合を手動で解決するための4つのオプションを提供します。

  • 現在の変更を受け入れる: feature2の変更を保持します2。
  • 着信を受け入れる: Main(feature1を含む)から変更を維持します。
  • 両方の変更を受け入れる: 両方の変更のセットを保持します。
  • 変更の比較: 決定する前に違いを表示します。

  紛争を解決するためのオプション

クリック 変更を比較します 。 マージの競合中にVSコードの変更をクリックすると、並べて開きます Diffビュー 競合するファイルの。このビューは、現在のブランチの変更(左側)と、合併しているブランチからの着信の変更(右側)を示しています。 これにより、競合を解決する方法を選択する前に、両方のバージョンラインを1行ごとに比較できます。

  ブランチバージョンの比較

その後、ファイルを手動で編集したり、電流を受け入れたり、着信を受け入れる、またはそのビューから直接受け入れるなどのオプションのいずれかを使用できます。

競合を解決した後、ファイルを保存します。次に、ステージを上げて変更を犯します。

96F930BCA298263625AE8F4B26A7837D8A1FE37

それでおしまい! Visual Studioコードを使用して、Gitマージ競合を正常に解決しました。

これが便利だと思います。

読む: WindowsにGitをダウンロードしてインストールする方法 。

頻繁なフォルダを削除するwindows8

GITでのコミットを元に戻すにはどうすればよいですか?

GITリポジトリでのコミットを戻すには、git revertコマンドを使用できます。プロジェクト履歴からコミットを削除する代わりに、このコマンドは、コミットによって導入された変更を反転する方法を特定し、結果の逆コンテンツに新しい「コミットを戻す」を追加します。これは、信頼できるコラボレーションとプロジェクトの整合性の両方にとって重要な歴史を維持するのに役立ちます。

次を読む: WindowsコンピューターのパスでGitを見つけることができない修正

人気の投稿