1
0
hugo/old/2017-04-20-git.md
2024-12-21 23:10:54 +09:00

43 lines
1.2 KiB
Markdown

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