̃Gg[͂ĂȃubN}[Nɒlj

git :: リモートリポジトリを再構築する



 今回は、すでに存在する staging ブランチを削除して、master ブランチから新たに staging ブランチを再構築します。

  • 現在の状態
$ git br -a
  master
* staging
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/staging
  • すでに存在する staging ブランチを最新にする
$ git pull
Already up-to-date.
  • 念のため、すでに存在する staging ブランチを staging.bak としてバックアップする
$ git branch -m staging staging.bak
  • staging.bak ができたか確認
$ git br -a
  master
* staging.bak
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/staging
  • master ブランチに移動
$ git co master 
Switched to branch 'master'
  • master ブランチを最新にする
$ git pull
Already up-to-date.
  • master ブランチから staging ブランチを作成(master = staging となる)
$ git co -b staging
Switched to a new branch 'staging'
  • staging ブランチができたか確認
$ git br -a
  master
* staging
  staging.bak
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/staging
  • リモートの staging ブランチを削除する
$ git push --delete origin staging
To gitolite@localhost:hoge_repo
 - [deleted]         staging

※ git push origin staging -f としてもうまく行かなかったので、上記のようにブランチを削除する方法を採用

  • リモートの staging ブランチが削除されたことを確認
$ git br -a
  master
* staging
  staging.bak
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  • staging ブランチに居ることを確認して…
$ git br
  master
* staging
  staging.bak
  • リモートの staging ブランチに push する
$ git push origin staging
Total 0 (delta 0), reused 0 (delta 0)
 * [new branch]      staging -> staging
  • リモートの staging ブランチが作成されたことを確認
$ git br -a
  master
* staging
  staging.bak
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/staging
補足事項

ここまで作業して、万事OKと思い、他のディレクトリの staging ブランチに移動して git pull し、git diff master とすると差分が発生している…
原因が分からず、取り急ぎそのディレクトリを放棄し、新たにディレクトリを作って git clone して対応しました。




unix/command/git/operation/rebuild_remote_repository.txt