尝试使用 git subtree 在多个项目中共享公共库文件。这是我一直遇到的问题。
1) 添加子树,以便我的项目的“lib”子目录来自 lib-dk 存储库。
$ git subtree add --prefix=lib --squash git@bitbucket.org:dwknight/lib-dk.git master
2) 更改“lib”中的文件
3) 提交对主项目 repo 的更改
$ git commit -am "update project"
4) 将更新推送到主项目 repo
$ git push origin master
5) 将“lib”中的更改推送回“lib-dk”repo
$ git subtree push --prefix=lib git@bitbucket.org:dwknight/lib-dk.git master
git push using: git@bitbucket.org:dwknight/lib-dk.git master
To git@bitbucket.org:dwknight/lib-dk.git
! [rejected] f455c24a79447c6e3fe1690f5709357b7f96828a -> master (non-fast-forward)
error: failed to push some refs to 'git@bitbucket.org:dwknight/lib-dk.git'
hint: Updates were rejected because the tip of your current branch is behind its remote counterpart. Merge the remote changes (e.g. 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
6) 即使 lib-dk 存储库中没有任何变化,我也会收到此拒绝。当我尝试拉动时,它的行为就像有东西一样,但我可以通过拉动进行更新。推动仍然被拒绝。