git push
gitリポジトリにpushする時
git push origin master
って感じで指定してますよね?
git pushについてちゃんと調べたのでメモ的に残します。
とりあえず基礎的な
上のコマンドというか、pushは
git push (プッシュ先リモート名) (プッシュ先ブランチ名)
という風に指定します。
もうちょっと深く
実は最初のコマンドは省略系で省略せずに書くと
git push origin master:master
という感じです。
一番後ろのmaster:masterとか
意味わからないと無駄に長いだけだと思いますがちゃんと意味があります。
これは
git push (リモート名) (ローカルブランチ):(push先リモートブランチ)
という感じで
ローカルのこのブランチを、リモートのこのブランチへpushしてくれって意味です。
要するにgit push origin masterは、リモートもローカルも同じでいいよって意味だったってことです
リモートブランチの削除
リモートブランチの削除もpushを使用します。
リモートのhogeブランチを削除する場合は
git push origin :hoge
と書きますが、さっき学んだ知識を持ってすれば
なんでこのコマンドでリモートのブランチが消えるのかが理解できると思います。
一応書いておくと
git push (リモート名) (なーんにもない):(リモートブランチ)
何もない空のブランチを、リモートのブランチに上書きします。
空のブランチを書き込む訳だから、リモートが空になって消えるという訳です。
--force
オプション
ローカルのブランチの状態でサーバ上のブランチを上書きできます
-f
は省略系
git push -f origin master
このオプションはかなり危険
誰かが自分が作業してるブランチに更新をあげていたりすると、上書きするので失われる
本来ならやらない方がいいんだけど、自分のコミットが間違って時などに修正して-f
オプションで強制的に上書きしたりする
--force-with-release
を使うと更新されている場合は上書きできなくなるので積極的に使っていけばいいと思う