この投稿では、お見せします Gitで2つの枝をマージする方法 。 分岐により、複数の開発者が同じコードベースで独立して同時に作業できるようになります。開発者は、多くの場合、メインコードに影響を与えることなく、新しい機能を構築したり、バグを修正するためのブランチを作成したりします。作業が完了すると、これらの変更をメインブランチに結合する必要があります。このプロセスはマージと呼ばれます。
2つのブランチをマージするために使用されるコマンドはどれですか?
gitにコードをマージする方法は複数あります。たとえば、git merge
またはgit rebase
コマンドを使用して、お客様のマシンのローカルの変更をマージすることができます。ただし、チーム環境で働いている場合は、 リクエストをプルします Githubで、変更をメインブランチにマージします。この投稿では、両方の方法を詳細に説明します。
Gitで2つの枝をマージする方法は?
に Gitに2つの枝をマージします 、次の方法のいずれかを使用できます。
- プルリクエストの使用(githubで)
- マージまたはリベースを使用する(ローカルGit)
マージプロセスを理解するには、最初にGitHubに新しいリポジトリを作成しましょう。
GitHubアカウントにログインします。クリック 新しい ダッシュボードの左ペインに。必要な詳細を入力してください 新しいリポジトリを作成します 。 この例では、リポジトリに名前を付けます TWC-MERGE-DEMO 。 ボックスをチェックして追加します readmeファイル 。 クリック リポジトリを作成します 。
この時点で、リポジトリには1つあります readme.md ファイル(必須プロジェクト情報を保存するためのマークダウンファイル)と1つのコミット、 最初のコミット そのgithubは、readmeを追加すると自動的に作成されます。
リポジトリを変更して、別のコミットを行いましょう。 クリックします 編集 (鉛筆)アイコンの隣 readme.md 。 コンテンツに小さな変更を加えてクリックします 変更をコミットします 。 COMMING変更ダイアログで、入力します 名前 そして 説明 あなたのコミットともう一度クリックしてください 変更をコミットします 。
リポジトリは、この新しい変更を最新のコミットとして示しています。次に、リポジトリをローカルマシンにクローンしましょう。
クリックします コード リポジトリ名の横にドロップダウンします。ローカルでは、クリックします コピー HTTPSリンクの横にあるアイコン。
ポインタを移動します
次に、デスクトップに移動します Visual Studioコードを開きます (すでにVisual Studioコードを持っていると仮定します gitがインストールされ、Windows PCに構成されています )。クリックします エクスプローラ 左ペインのアイコンと、プロジェクトファイルを保持するディレクトリを開きます。この例では、aを作成しました 空白 ディレクトリと呼ばれます TWC_GIT_MERGE_DEMO 。
次に、メニューバーの3つのドットをクリックして選択します ターミナル>新しい端子 。ターミナルでは、タイプgit clone
を使用してHTTPSリンクを貼り付けます Ctrl + v 、次に押します 入力 。これにより、GitHubリポジトリをローカルマシンにクローンします。 Visual StudioコードのExplorer Paneにフォルダーが表示されます。
次に、cd
コマンドを使用して、クローン化されたプロジェクトフォルダーに切り替えます。
次に、次のコマンドを実行して、現在のgitステータスを確認します。
2CC994E1C64A81A18665F0ADB9853E6E771554C上記のコマンドは、メインブランチにいることを確認するテキストを生成します(現在は1つのブランチが1つしかありません)。ローカルマシンのコードは、クラウド上のデフォルトリポジトリのメインブランチのコードを使用して最新です(デフォルトまたは「Origin」は、SAYETEMでローカルにクローン化されたリポジトリです)。
git branch
コマンドを次のように確認できます。
これは、私たちがいることを示しています 主要 支店。次に、呼ばれる新しいブランチを作成しましょう 方法1 そしてそれに切り替えます。端末で、次のコマンドを実行します。
git checkout -b method1
それでは、新しいものを追加しましょう index.html Method1ブランチにいる間にコードにファイルします。 Visual StudioコードのExplorer Paneに移動します。右クリックします TWC-MERGE-DEMO フォルダーと選択 新しいファイル 。ファイルに名前を付けます index.html 、サンプルHTMLコードを追加して保存します。
次に、次のコマンドを使用して、ステージを作成して変更します。
7967332399171ED65A100036DD3FAC6B681B4F7
州リポジトリサービス
これで、この新しいファイル、index.htmlはに存在します 方法1 ブランチ(ではありません 主要 支店)。これらの変更をGitHubにプッシュするには、次のコマンドを実行します。
git push origin method1
このコマンドは、名前の新しいブランチを作成します 方法1 リモートGithubリポジトリで、ローカルの変更をプッシュします。
これを確認するには、ブラウザのGitHubリポジトリに戻り、ページを更新します。の下 枝 セクションでは、両方が表示されます 主要 そして 方法1 。
これでマージします 方法1 に分岐します 主要 。これは2つの方法で実行できます。
1]プルリクエストの使用(GitHubで)
プルリクエストは、チーム設定で役立ちます。これにより、開発者はコードの変更を確認、議論、承認してから、メインブランチにマージすることができます。
githubには、aが表示されます リクエストを比較してプルします 新しくプッシュされたMethod1ブランチの隣のボタン。クリックしてください。 これで、合併しようとしていることがわかります 方法1 に 主要 支店。 Aを追加します タイトル そして 説明 行った変更を要約します。クリック プルリクエストを作成します 。
プルリクエストを作成すると、次のことが起こります。
- GITは、両方のブランチからの変更を自動的にマージできるかどうかを確認します。競合がない場合は、ブランチを直接マージすることが許可されます。競合がある場合、Gitは進む前に手動でそれらを解決するように求めます。
- チーム環境では、上級開発者またはプロジェクトマネージャーは、マージを承認する前に、変更を確認およびコメントすることができます。
私たちの場合には競合がなく、私たちは唯一の貢献者であるため、クリックするだけで マージプルリクエスト 。
a 専念 メッセージ マージを反映して表示されます。先に進んでクリックしてください マージを確認します プロセスを最終化する。
その後、メッセージが表示されます。 リクエストを正常にマージして閉じます 「。これは、Method1ブランチからの変更がメインブランチに正常に統合されていることを確認します。
これらの変更をローカルGitで取得するために、Visual Studioコードで次のコマンドを実行します。
51C48A748E94F47634CD41516CB21C14A0C29F72]マージまたはリベースを使用する(ローカルGitで)
GitHubでプル要求を作成することとは別に、MergeコマンドとRebaseコマンドを使用して2つのブランチをローカルにマージすることもできます。 git merge
とgit rebase
の両方が枝を組み合わせますが、マージは歴史を補償します。
両方のコマンドがどのように機能するかは次のとおりです。
メインブランチに切り替えます
42D9EC8CADBFFF495632DFF40F7863A15E1E768F47次に、method1ブランチをメインにマージします。
ECまたは、Method1を使用していて、メインにリベースしたい場合:
メッセージストアが最大サイズに達しました
git checkout method1 git rebase main
次に、メインブランチに戻り、必要に応じて変更をマージします。
最後に、マージされた結果をGitHubに押し込みます。
B1C8294DC9613765953CE1F63044B5BA9CFC2C4これが便利だと思います。
読む: GITエクスプローラーでここですべてのgitコマンドを見つけます 。
競合することなくGitの2つのブランチをマージする方法は?
競合なしにGITの2つのブランチを統合するには、565B3A8FF11B3333178303F374FDB1DD64B2FF28Eを実行することにより、両方のブランチがリモートリポジトリからの最新の変更を最新の状態にしていることを確認してください。次に、2つのブランチの変更が、特に同じコード行で重複しないことを確認します。確認したら、ターゲットブランチに切り替えて、マージコマンドを実行します。競合する変更がない場合、GITは手動解決を求めることなくマージを自動的に完了します。