頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

【Git】リモートリポジトリに追加された新規ブランチをローカルリポジトリへ取り込むときの手順ver1

この記事では次のようなケースを想定した手順をまとめました。

リポジトリ masterブランチ developブランチ
リモートリポジトリ
ローカルリポジトリ ×

つまり、リモートリポジトリにはdevelopブランチがあるのに、ローカルリポジトリにはない。
なのでローカルリポジトリへdevelopブランチを取り込みたいけど、どうすれば良いんだろう…
を解決するための手順です。

1.ローカルリポジトリのブランチを確認する。

まずは、ローカルリポジトリにどんなブランチが在るのかを確認するために以下のコマンドを実行します。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch
* master

実行結果をみると、現時点ではローカルリポジトリにはmasterブランチしか存在していません。

2.リモートリポジトリのブランチを確認する。

次に、リモートリポジトリにどんなブランチが在るのかを確認するために以下のコマンドを実行します。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch -r
  origin/HEAD -> origin/master
  origin/master

現時点では、リモートリポジトリも、masterブランチしか存在していません。
実際にはリモートリポジトリにdevelopブランチが存在しているのに、一覧には出て来ないのです。
なぜかというと、リモートリポジトリの最新情報(履歴)をローカルリポジトリへ反映していないからです。
この問題はgit fetchすると解消します。

3.リモートリポジトリの最新情報(履歴)をローカルリポジトリへ反映する。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (develop)
$ git fetch
warning: redirecting to http://localhost:8888/user01/prj2.git/
From http://localhost:8888/user01/prj2
 * [new branch]      develop   -> origin/develop

これでdevelopブランチの情報をローカルリポジトリへ反映させることができました。

4.再度、リモートリポジトリのブランチを確認する。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch -r
  origin/HEAD -> origin/master
  origin/develop
  origin/master

今度はちゃんと、developブランチが在ることを確認できました。

5.originがどこを指しているのかを確認する。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git remote -v
origin  http://localhost:8888/user01/prj2 (fetch)
origin  http://localhost:8888/user01/prj2 (push)

6.ローカルリポジトリにdevelopブランチを作成する。

今回は、リモートリポジトリにあるdevelopブランチをローカルリポジトリへ取り込みたいので、
ローカルリポジトリにもdevelopブランチを作成します。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git checkout -b develop
Switched to a new branch 'develop'

7.リモートリポジトリにあるdevelopブランチをローカルリポジトリへ取り込む。

XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (develop)
$ git pull origin develop
warning: redirecting to http://localhost:8888/user01/prj2.git/
From http://localhost:8888/user01/prj2
 * branch            develop   -> FETCH_HEAD
Updating 5ba484a..39c4e0d
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

これでdevelopブランチをローカルリポジトリへ取り込むことが出来ました。
以上。