アップデート時の弊鯖のgit操作(全力本番運用) 

ブランチ名について:
upstream_master:本家をリモートリポジトリとして追加したもの
master:自分のリポジトリのmaster
crazynewworld:弊鯖の独自変更のブランチ

コマンド:
git checkout upstream_master
git pull
git pull --tags
git checkout master
git merge upstream_master
git push origin master
git push origin --tags
git checkout crazynewworld
git rebase master

ここでコンフリクトがあったら該当ファイルを修正して、
git add <修正したファイル名>
git rebase --continue

rebaseが通ったら、例によってbundle updateとかやーんとかmigrateとかprecompileとかリスタートとかやって、最後に

git push -f origin crazynewworld

ローカルリポジトリに、本家リモートリポジトリへの参照ブランチを作っておくという手法は、次のページで学びました。
qiita.com/xtetsuji/items/555a1

こうしておくと、本家への追従がしやすいです

スレッドを表示

それはそうと、弊鯖のmaster追従手順を見直して、GigHubのヘルプ(リンク先)に従い、下のように簡略化しました。スッキリした。tagsのpullは、これで正しいか検証していないので雰囲気。

cd /home/mastodon/live
git checkout master
git pull github.com/tootsuite/mastodon. master
git pull github.com/tootsuite/mastodon. --tags
git push origin master
git push origin --tags
git checkout crazynewworld
git rebase master

help.github.com/en/articles/me

スレッドを表示

@hanage999 最後の手順が省略されてるだけか。push -f するやつ。

@noellabo ちゃんと全部書いとかないといけなかったすね。サンクス!

フォロー

@hanage999 いや、TLを遡りながらだと誤読するってアレで、私の読み方が悪いのですw

@hanage999 んで、もっと単純化できないか考えてみました。

Hanage999/mastodonをcloneして、crazynewworldブランチになっている状態(常時そのまま)で、

cd /home/mastodon/live
git fetch github.com/tootsuite/mastodon.
git rebase FETCH_HEAD

で、
bundle install, migrate, precompile, restart, 検証

git push -f origin crazynewworld

リモートブランチは登録しないで済ます。crazynewworldをデフォルトブランチにして、origin/masterは使わないので消しちゃう。

@noellabo これは貴重なアイディアいただきました。バッチリ採用させてもらおうと思います。ありがとうございます!

FETCH_HEADというキーワード、初めて知りました。便利すねこれ。

ただ、origin/masterを消しちゃうのがちょっと心配。何かあった時のために、本家のバニラをmasterとしてローカルに置いておきたい気持ちがあるんですが、それが実際に必要になるケース、ありますかね。ちょっと考えてみると、実はなさそうという気になってきた……

ログインして会話に参加
DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!