dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

gitでリモートブランチをローカルにコピーしようとして失敗した

なんのことはなく、あるPCで作業した内容をGitHubのブランチにpushして
自宅PCにコピーしようとしたときに失敗したので原因と対策をメモ。

コピーしようとしたブランチをfeature/hogeとすると
最初、自宅PCにはそのブランチがなかったので
こんなふうにコマンドを入力した。

git checkout -b feature/hoge

しかし、作成したブランチに作業した内容が反映されている様子はない。。。

どうやら、以下のようにするのが正解だったよう。

git checkout -b feature/hoge origin/feature/hoge

最初のコマンドだと、ローカルに新たにブランチを作成しただけだったんですね。

ちなみに、この失敗をした時に
作成したブランチを一度削除する必要があったのでその方法もメモ。

git branch -d feature/hoge

でいけます。

ちなみに、今回の作業の逆として
ローカルでブランチ切って、それをリモートに反映させるには
次のようにします。

# ローカルブランチを作成
git checkout -b feature/piyo
# そのままpushするとリモートブランチが切られる
git push origin feature/piyo

# 試しにやってみただけなので削除
git branch -d feature/piyo
git push origin :feature/piyo



(2013/12/11 追記)
最後の

# そのままpushするとリモートブランチが切られる
git push origin feature/piyo

というのは、本当は

git push origin <ローカルのブランチ名> <リモートに作成したいブランチ名>

という書き方なんだけど、ブランチ名が同じでいい場合は
後ろの<リモートに作成したいブランチ名>は省略できますよーというものらしい。