いくつかの基本コードを共有するために、現在取り組んでいるいくつかのプロジェクトで Git サブツリーを使用しています。基本コードは頻繁に更新され、アップグレードはどのプロジェクトでも発生する可能性があり、最終的にはすべてのプロジェクトが更新されます。
サブツリーが最新であると git が報告しているのに、プッシュが拒否されるという問題に遭遇しました。例えば:
#! git subtree pull --prefix=public/shared project-shared master
From github.com:****
* branch master -> FETCH_HEAD
Already up-to-date.
プッシュすると、プッシュするものが何もないというメッセージが表示されるはずです...そうですか?右?:(
#! git subtree push --prefix=public/shared project-shared master
git push using: project-shared master
To git@github.com:***
! [rejected] 72a6157733c4e0bf22f72b443e4ad3be0bc555ce -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:***'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
この理由は何でしょうか?プッシュが失敗するのはなぜですか?