git メモ:ローカルとリモートのブランチ名を変更するpost

git のブランチ名を変えたい場合のやりかたメモ。

ある所に

  1. master から別のブランチ名にブランチを切りました
  2. 特定フォルダだけ必要なので subtree (git subtree push --prefix public/ . sub-branch) で push しています。
  3. でも、よく考えたら一手間かかるし、もういっそのこと構造を変更しそのまま master ブランチを名前変えて使えばイイじゃん

と考えた男がいました。

前提条件

ということで、まずは条件を設定。

ローカルリモート
mastermaster
gh-pagesgh-pages

と設定します。

$ git branch --all
  gh-pages
* master
  remotes/origin/gh-pages
  remotes/origin/master

こんな感じです。

これを、

ローカルリモート
gh-pages ※旧mastergh-pages ※旧master

こうじゃ

やり方

まずは、現状確認

$ git checkout master
$ git branch --all
  gh-pages
* master
  remotes/origin/gh-pages
  remotes/origin/master

おもむろに、いらない子、今の gh-pages ブランチをローカルとリモート両方で削除。

$ git push origin :gh-pages
To https://github.com/hsp-users-jp/hsp-users.jp.git
 - [deleted]         gh-pages
$ git branch -m gh-pages

gh-pages のみの変更はないので大丈夫。 傷は浅いぞ。

もし、gh-pages 側で変更している場合は、忘れずに master にマージをしましょう。

もう一度確認

$ git branch --all
* master
  remotes/origin/master

はい、いらない子は削除される運命だったのです。

次に、ローカルのブランチ名を変更します。 別のブランチで操作している場合は、git branch -m OLD_BRANCH NEW_BRANCH で操作します。

$ git branch -m gh-pages
$ git branch --all
* gh-pages
  remotes/origin/master

そして、ローカルの変更をリモートに送ります。

$ git push origin gh-pages
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/hsp-users-jp/hsp-users.jp.git
 * [new branch]      gh-pages -> gh-pages
$ git branch --all
* gh-pages
  remotes/origin/gh-pages
  remotes/origin/master

最後に、リモートの master ブランチを削除して完了です。

$ git push origin :master
To https://github.com/hsp-users-jp/hsp-users.jp.git
 - [deleted]         master

確認すると

$ git branch --all
* gh-pages
  remotes/origin/gh-pages

はい、できていますね。

まとめ

変更先のブランチを削除。 ただし、該当ブランチでの作業がないこと。

$ git branch -D gh-pages
$ git push origin :gh-pages

ローカルとリモート両方のブランチ名を変更。

$ git checkout master
$ git branch -m gh-pages
$ git push origin gh-pages
$ git push origin :master

こんな感じです。

参考


   /   変更履歴  /   Permalink  /  このエントリーをはてなブックマークに追加 
 カテゴリ: ブログ  /   タグ: GitHub, git, メモ