この記事では次のようなケースを想定した手順をまとめました。
リポジトリ | masterブランチ | developブランチ |
---|---|---|
リモートリポジトリ | ○ | ○ |
ローカルリポジトリ | ○ | × |
つまり、リモートリポジトリにはdevelopブランチがあるのに、ローカルリポジトリにはない。
なのでローカルリポジトリへdevelopブランチを取り込みたいけど、どうすれば良いんだろう…
を解決するための手順です。
まずは、ローカルリポジトリにどんなブランチが在るのかを確認するために以下のコマンドを実行します。
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch
* master
実行結果をみると、現時点ではローカルリポジトリにはmasterブランチしか存在していません。
次に、リモートリポジトリにどんなブランチが在るのかを確認するために以下のコマンドを実行します。
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch -r
origin/HEAD -> origin/master
origin/master
現時点では、リモートリポジトリも、masterブランチしか存在していません。
実際にはリモートリポジトリにdevelopブランチが存在しているのに、一覧には出て来ないのです。
なぜかというと、リモートリポジトリの最新情報(履歴)をローカルリポジトリへ反映していないからです。
この問題はgit fetch
すると解消します。
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ブランチの情報をローカルリポジトリへ反映させることができました。
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git branch -r
origin/HEAD -> origin/master
origin/develop
origin/master
今度はちゃんと、developブランチが在ることを確認できました。
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)
今回は、リモートリポジトリにあるdevelopブランチをローカルリポジトリへ取り込みたいので、
ローカルリポジトリにもdevelopブランチを作成します。
XXXXX@DESKTOP-AQBVPOG MINGW64 /c/workspace/prj2 (master)
$ git checkout -b develop
Switched to a new branch '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ブランチをローカルリポジトリへ取り込むことが出来ました。
以上。
以上で記事の解説はお終い!
もっとGitを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!