使用子树从分支推送到主服务器

时间:2014-03-31 15:40:33

标签: git github

我正在尝试在我的git仓库中设置一个多分支系统。我有一个'dev'分支和一个'master'分支。我希望做的是将我的应用程序的dist文件夹(典型的yeoman应用程序/ dist / setup)推送到我的主人,然后我可以在我的专用服务器上下载。

我已经执行了一次这个动作,并且它有效,但现在我从dev开始运行此命令时出现以下错误:

命令

git subtree push --prefix dist origin master

错误:

To git@github.com:invisibled/invisible-sound.git
! [rejected]        4b8446f14f7db50578699fd1ccc88a04326ed6e1 -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:invisibled/invisible-sound.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我一直在搜索Google和SO以获得答案,但这些都没有帮助我理解并在我的工作流程中解决了这个问题。如果有人可以提供任何信息或提示,那将是伟大的!如果您需要更多信息,请与我们联系。

谢谢!

2 个答案:

答案 0 :(得分:0)

很抱歉,如果您已经考虑过这个问题,但由于还没有任何答案,我认为我会拍摄。

通常,该消息表示自上次推送到您之后要推送的存储库。因为git不知道如何合并这两者。它是保留远程更改还是打算覆盖它们?

如果是这种情况,只需从远程执行git pull并在本地解决任何合并冲突,然后将结果推回到远程。

答案 1 :(得分:0)

我还使用了子树方法一段时间将典型的Yeoman dist文件夹推送到远程(在我的情况下是gh-pages)。这是一个make do,但当服务器上的某些内容发生变化时会引起头痛。然后,您必须采用更不优雅的解决方案,从而产生更多麻烦。

现在我转向了一个更好的解决方案:Rob Wierzbowski grunt-build-control。需要10分钟才能安装,但工作方式就像魅力一样,整个部署构建文件夹到遥控器变得自动化。完全版本控制和无痛。

我看到它现在也在Yeoman wiki中提及。