1
0
hugo/content/blog/2017-04-20-git.md
2024-04-23 22:21:26 +09:00

1.2 KiB

+++ date = "2017-04-20" tags = ["git"] title = "git-upstream" slug = "git" +++

Mastodonのアップデートが速いのでついていくのに大変さがあるので、この辺、自動化したい(かつこれが一般的なやり方かどうかわからないし、多分違う)。

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でも走らせて対応しようかなと思いつつ、変更内容によっては手動で対応しなければならない場合もあるだろうし、やっぱり手動でやるしかないのかもしれない。