初心者がGitのコマンドを叩く時結構怖いですよね...w
リモートのマスターにいきなりmergeしちゃダメだよ〜!
なんて釘を刺されててさらに恐怖が...(多分できないようになっていると思いますが...
そんな僕がGitを触ってて毎回調べちゃうコマンドなので、僕の記憶定着も含め書いておきます。
同じことで悩んでいる人はきっと多いはず。
やりたいこと
今現在自分が開発をしているローカルのブランチに対して、最新のリモートの改修内容を反映させたい、ことって結構ありますよね。
他の人とのコンフリクトが発生した場合なんかは特に必要です。
やってみる
まず、"git branch"で現在のブランチが開発ブランチになっているか確認します。
$git branch
hogebranch <-現在地が開発ブランチなのを確認
master
開発ブランチであることを確認したら、ターミナルで以下のコマンドを叩く。
$git checkout master
$git git pull
$git checkout hogebranch
$git merge master
- ローカルのマスターに移動
- ローカルのマスターを最新に更新
- 開発用ブランチに戻る
- ローカルのマスターを開発用ブランチに反映
といった流れです。
こうすることで、ローカルのマスターを更新しつつ開発ブランチの更新ができます。
ローカルのマスターは更新しなくていいよ!
っていう人は以下の手順でもできます。
$git fetch
$git merge origin/master
- "origin/master"ブランチとしてリモートの最新情報を持ってくる
- 開発ブランチに持ってきた最新情報を反映する
fetchコマンドによってローカルのorigin/masterブランチにリモートの最新マスター情報を取り込むことができます。
fetchをしただけではあくまで”リモートの情報を参照できるようになっただけ”なので、それをローカルのブランチに反映させる必要があります。
開発ブランチに対してその最新情報を反映させることで、ローカルのマスターは更新されていないが、開発ブランチは最新と同じにすることができるわけですね。
また、みていただくとわかるとおり、こちらの方が圧倒的に(とはいっても二行ですが)コマンドの数が少なくて澄みます。
僕の場合ですが、コンフリクトの修正などは開発ブランチのみ、そして次の新機能を実装するために新しいブランチを作るタイミングでマスターにも反映させる感じで使っています。
まとめ
git...いまだにあれ?これどうするんだっけ?
って不安になることがあるので、もっと触らないとなーとは思うんですけどね...
そのうちテスト用のリポジトリ作っていじり倒して色々やってみるのはありかも...!
記事にできたらしたいですね...!
それでわ!