Skip to content

Latest commit

 

History

History
140 lines (116 loc) · 5.6 KB

File metadata and controls

140 lines (116 loc) · 5.6 KB

TOP
前: リモートリポジトリのブランチを取得
次: マージ時の競合解決


3. 特定シチュエーションでの操作

3-2. 他のブランチをマージ

同時並行で開発作業が進んでいる場合、他の人の作業を取り込んで手元でテストや動作確認を行いたいシーンが出てきます。git mergeを使うことで、他のブランチの内容を自分が作業しているブランチに反映させることができます。

  1. コマンドプロンプトまたはPowerShellより、任意のディレクトリでターゲットリポジトリのクローンURLを使いクローンしてください。
    なお、既にクローンしている場合はプルを行ってください。
  2. ブラウザでターゲットリポジトリのページにアクセスし、「main」プルダウンからFind or create branch...にブランチ名を入力し、「Create branch: <ブランチ名>」からリモートリポジトリに新しいブランチを作成してください。ブランチ名は3-2-remoteとします。
  3. 「Add file」ボタンより、ブランチ3-2-remoteにファイル3-2-remote.txtを作成してください。
  4. コマンドプロンプトまたはPowerShellより、リモートリポジトリのブランチを取得してください。
  5. 新しいブランチ3-2-localを作成し、切り替えてください。
  6. 現在のブランチを確認します。以下のようにブランチ3-2-localが選択されていることを確認してください。(他のブランチがリストされていても構いません)
* 3-2-local
main
  1. ブランチ3-2-localにファイル3-2-local.txtを作成してください。
  2. リモートのブランチ3-2-remoteを現在のブランチ3-2-localにマージしてください。(ヒント:リモートのブランチ名はorigin/3-2-remoteになります)
  3. ルートディレクトリに3-2-remote.txt3-2-local.txtが存在していることを確認してください。
  4. そのままブランチ3-2-localでコミットしてください。(コミットしない場合、mainブランチまでファイルが引き継がれてしまいます)
  5. mainブランチに切り替えてください。
  6. 先ほど作成したブランチ3-2-localを削除してください。
  7. ブラウザでターゲットリポジトリのページにアクセスし、「main」プルダウン右横の「branches」より、手順2で作成したリモートのブランチを削除してください。

ディレクトリや別名ファイルは問題なくマージされます。また、同じファイルでも異なる行であれば特に操作を行うことなくマージされます。

次のプラクティスでは、同じファイルの同じ行を更新していた場合の競合を解決する操作を行います。

答え(一例です)

ディレクトリにターゲットリポジトリクローンがない場合

> git clone {ターゲットリポジトリのクローンURL}

既にディレクトリにターゲットリポジトリクローンがある場合

> git switch main
> git pull
  1. 3-1のプラクティス2の操作と同じです。そちらを参考にしてください。
  2. 2-2のプラクティス9の操作と同じです。そちらを参考にしてください。
> git fetch
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (3/3), 945 bytes | 85.00 KiB/s, done.
From https://github.com/kato-pra/git-practice-target
 * [new branch]      3-2-remote -> origin/3-2-remote
> git branch 3-2-local
> git switch 3-2-local
Switched to branch '3-2-local'
> git branch
  1-README
* 3-2-local
  3-ADDFILE
  main
  1. ファイル作成はGUIでも可能なため省略
    なお、この差分をコミットした後にmainブランチに切り替えると、GUIからもファイルが見えなくなります

> git merge origin/3-2-remote
Updating 9de2237..a52a5be
Fast-forward
 3-2-remote.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 3-2-remote.txt
> ls


    ディレクトリ: C:\Users\tie308747\Documents\git-test\git-practice-target


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025/06/24     17:51              0 3-2-local.txt
-a----        2025/06/24     17:53              2 3-2-remote.txt
-a----        2025/06/19     19:59              0 Must.txt
-a----        2025/06/19     19:24              0 README.md
> git add .
> git commit -m "3-2 commit"
[3-2-local a5407ee] 3-2 commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 3-2-local.txt

なお、ここのコミットメッセージは任意です

> git switch main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
> git branch -D  3-2-local
Deleted branch 3-2-local (was a5407ee).
  1. 3-1のプラクティス8の操作と同じです。参考にしてください。

TOP
前: リモートリポジトリのブランチを取得
次: マージ時の競合解決