開発用のブランチで編集・コミットが完了したら、本丸のmaster
ブランチにも反映させます。
はじめに
基本の流れ
凡例
記号・用語 | 意味 | 使い方 |
---|---|---|
$ |
「"コマンドライン"で使えるコマンド」のしるし。 通常、Gitを始めとする「シェルスクリプト」系の説明では、コマンドの文頭に $ をつけて表現されることが多いようです。当ブログでもそれに倣って記載してます。 |
実際にコマンドを入力するときは、git~ 以下をコピペしてください。 |
# |
コメント | 補足事項など。 (対話モードでは使えません、、、) |
<> |
編集点(という表現で良いのかな…?) | 任意の名前、識別子を入力してください。 |
(コミットの)識別子 | コミットごとにつく半角英数字7桁の番号。 SHA-1というハッシュ値らしいです。 |
当記事では<コミット> のことを指します。 |
マージ
ブランチで編集が出来たら、一旦ローカルリポジトリのmaster
ブランチに反映させます。
お互いの履歴やマージの記録自体も残しつつ、マージする
--no-ff
オプションを指定してFast-Forward
とさせないことで、マージの履歴も含めて記録させます。
詳細はこちらの41ページあたりから。
$ git merge --no-ff <コミット履歴のあるブランチ>
プッシュ
ローカルリポジトリで編集が終わったら、リモートリポジトリにも情報を反映させます。
同名のブランチにプッシュ
$ git push <リモートリポジトリ> <ローカルブランチ>
【例】
ローカルリポジトリのmaster
ブランチから、リモートリポジトリorigin
の同名ブランチ(=master
)にコミット履歴をプッシュ。
$ git push origin master
ブランチ名を指定してプッシュ
リモートリポジトリでもブランチが切られている場合など、プッシュ先のブランチを指定する場合は、末尾に:<リモートブランチ>
と付け加えます。
$ git push <リモートリポジトリ> <ローカルブランチ>:<リモートブランチ>
【例】
ローカルリポジトリのmaster
ブランチから、リモートリポジトリorigin
のbranch1
ブランチにコミット履歴をプッシュ。
$ git push origin master:branch1
強制的にプッシュして上書き
そのままプッシュするとリモートリポジトリの履歴とコンフリクトしてしまう場合など、どうしてもプッシュ元の情報を反映させたい時のみ、-f
オプションを使用します。
$ git push -f <リモートリポジトリ> <ローカルブランチ>
$ git push --force <リモートリポジトリ> <ローカルブランチ>
【例】ここまでのまとめ
# [develop]ブランチに移動 $ git checkout develop # ~ 編集 in [develop]ブランチ ~ # 今回の編集内容をまとめてステージに上げる $ git add -A # 一旦ステージの状態を確認 $ git status # 問題がなければコミットする $ git commit -m 'test.' # ここまでのコミット履歴を確認 $ git log # 問題がなければ[master]ブランチに移動 $ git checkout master # [develop]ブランチの履歴を[master]ブランチに反映する $ git merge --no-ff develop # 今回のコミット履歴をリモートリポジトリ[origin]の[master]ブランチに反映する $ git push origin master
参照
マージ
こわくない Git from Kota Saito
www.slideshare.net
git-scm.com