+++ date = "2017-04-20" tags = ["git"] title = "git-upstream" slug = "git" +++ Mastodonのアップデートが速いのでついていくのに大変さがあるので、この辺、自動化したい(かつこれが一般的なやり方かどうかわからないし、多分違う)。 ```bash heroku git:clone -a appname cd appname cp -rf .git .gitback mv .gitback ../ git remote add upstream https://github.com/tootsuite/mastodon.git git fetch upstream git merge upstream/master --allow-unrelated-histories # local # 自分が変更したファイルはHARDを優先する git --no-pager log -n 2 --graph --name-status --pretty=format:'%C(green)%an' --author=$USER | tr -d ' ' | cut -d ' ' -f 2|grep -v "|$USRR" git checkout --ours filename # update # それ以外はupstream/masterを優先する git checkout --theirs . git rebase upstream/master git rebase --continue rm -rf .git mv ../.gitback git add . git commit -m "up" git push -f heroku master ``` 何かあった時は`git reset --hard heroku/master`です。 Travis CIのcronでも走らせて対応しようかなと思いつつ、変更内容によっては手動で対応しなければならない場合もあるだろうし、やっぱり手動でやるしかないのかもしれない。