合併と紛争


Gitは、世界中の開発者のための非常に重要なツールです.Gitは、次のようにコードを格納するためのリポジトリを作成するだけではありません.

1 git分岐:


プロジェクトに新しい機能を追加する場合は、分岐を作成します.いったん枝を作成すると、RIPOのマスター/メインブランチがクローンされます.
Gitのブランチは、メインアプリケーションを壊すことなく新しい機能を追加またはテストするために使用されます.
c )ブランチを作成するためのgitブランチ
EG : git branch branch1git checkout分岐に入る
EG : git checkout branch1その後、ローカルマシンのメイン/マスターブランチからBranch 1に切り替えられます.
ローカルマシンにブランチを作成してからコミットし、その変更をプッシュすると、ブランチが上流にないというエラーが発生します
$ git push
fatal: The current branch test2 has no upstream branch.
To push the current branch and set the remote as upstream,
f )コマンドを追加することでこれを解決しますgit --set-upstream origin branch1(支店名)
次に、ローカルマシンにあるブランチを受け取り、Github Repoに追加します(リモートブランチを作成します).

2 .フォーク


これは、所有権がない他の誰かのレポに変更を加えるときに使用されます.
フォークへのステップ:あなたがフォークしたいrepoを開く
あなたはそれに単語のフォークと右端の隅にボタンを見ることができます.それをクリックして、そのレポがフォークされます.
一旦フォークされるならば、クローンされたレポはあなたのプロフィールでつくられます.

分岐したレポで働いている間、私のアドバイスはブランチを作成して、それに変更を加えて、それからあなたのクローンされたレポのマスター/メイン支店に合併します.これは、任意のマージの競合があるかどうかを検出するのに役立ちます.その後マージコンフリクトを削除し、プルリクエストを作成できます.

3 .引き要求


あなたが変更を行ったならば、あなたはプル要求をつくります、そして、現在、あなたは彼らをメインブランチに加えたいです.
あなたのフォークレポの変更を行ったときに、プル要求タブからプル要求を作成できます.それが作成されると、あなたはベースレポ(変更を追加する場所)のオプションを与え、ヘッドrepo(あなたはそれらの変更を行った).また、両方のベースとヘッドレポの支店を選択するオプションを提供します.
プル要求が作成されると、マージコンフリクトがあるかどうかを示します.マージ衝突がない場合は、プロジェクトに変更を簡単にマージできます.しかしマージコンフリクトを持っているときは、それらを削除しなければならず、変更だけをマージできます.
また、変更を確認するには、レビューを追加することができます.
他の誰かのレポでプルリクエストを作成しながら、プルリクエストを承認する必要があります.

4 .競合


ながら、マージの競合に遭遇するプル要求を行う.マージコンフリクトがある場合、プルリクエストはABUTに受け入れられ、ブランチはメインブランチにマージできません.
$ git merge test2
Auto-merging Example
CONFLICT (content): Merge conflict in Example
Automatic merge failed; fix conflicts and then commit the result.
紛争の理由
1つのファイルが1つのPRで編集されるが、もう一つで削除されるとき.
2 .ファイルの同じ行が2つの異なる枝で編集されたとき
衝突の理由を知ったら、Gitから直接解決するか、コマンドラインを使うことができます.
Git status :分岐にマージ衝突があり、どのファイルにマージコンフリクトがあるかを教えます.
$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   Example
cat :ファイルの内容をマージコンフリクトがある場所にします.
閉じるこの動画はお気に入りから削除されています
>>>>>HEAD
//* some lines
====
//* some lines
>>>>>branch name
この線== =は衝突分割です.
HEADと= == =の間のステートメントは、あなたが変更をしているあなたのブランチに既に存在します
との間のステートメントは、あなたが追加したいものです.
それで、ここではあなたの衝突です、あなたはすでにそこに線を受け入れるか、新しい変化を加えるか、加えることによって、この対立を解決することができます
これを解決するには
コードエディターを開きます.

私はここでVSコードを使用して、あなたはそれがコンフリクトブロックを示しているのを見ることができます、また、現在の変化を受け入れるというオプションをあなたに提供します.
したら、オプションを選択し、gitを追加します.そして、gitコミット- M "マージ解決".
その後、すべてのマージの競合を解決できます.
Githubから直接マージの競合を解決できます.プルリクエストを作成しながらマージコンフリクトがあることが表示されます.一旦プル要求が作成されるならば、あなたは対立を解決することができます.Githubは、手動で何を維持したい編集することができますエディタを開きます.一度行われた解決ボタンがアクティブになりますし、枝をマージすることができます.