我有这种情况:
Dev
是我用来开发的机器,我在它上面创建了一个git repo并定期提交它。
Staging
是我用来上传“稳定”版本的服务器的服务器,我也在那里创建了一个repo并将此服务器添加到Dev
远程存储库
每当我想要推送时我只需使用$ git push Staging master
,这会立即出现在服务器中,但为了使用我需要做的新代码$ git reset --hard HEAD
,否则git认为我已经编辑了文件在Staging
,我没有“新”文件。
我也没有在Git中获得Submodules的一部分 - 我尝试了一些技术,主要是git submodule add https://github.com/documentcloud/underscore.git local/sub/dir/underscore
,但除了转储当前系统{{1}之外,我没有得到任何结果}值。
非常感谢帮助! :)
答案 0 :(得分:1)
你不应该为那种f设置提供子模块,你可以将一个repo从一个环境(Dev)复制到另一个环境(Staging),有点像“git repository sync between computers, when moving around?”。
您的过程(添加远程和推送)是正确的,除非您应该:
答案 1 :(得分:0)
关于子模块,我建议阅读ProGit
的相关章节答案 2 :(得分:0)
当您推送到远程仓库时,它不会自动更新登台服务器上的工作副本。通过使用reset命令,可以将工作副本更新为之前推送过的HEAD修订版。
我认为您可以通过服务器端的挂钩轻松进行此设置,该挂钩在推送后执行。