我没有得到关于Git的东西 - 推送和拉动以及嵌套存储库

时间:2011-10-11 09:39:48

标签: git nested

我有这种情况:

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}之外,我没有得到任何结果}值。

非常感谢帮助! :)

3 个答案:

答案 0 :(得分:1)

你不应该为那种f设置提供子模块,你可以将一个repo从一个环境(Dev)复制到另一个环境(Staging),有点像“git repository sync between computers, when moving around?”。

您的过程(添加远程和推送)是正确的,除非您应该:

  • 推送至remote bare repo
  • 有一个post-receive挂钩,能够使用最新的commi内容更新单独的工作树。

(或者你can directly fetch from the remote bare repo

答案 1 :(得分:0)

关于子模块,我建议阅读ProGit

的相关章节

答案 2 :(得分:0)

当您推送到远程仓库时,它不会自动更新登台服务器上的工作副本。通过使用reset命令,可以将工作副本更新为之前推送过的HEAD修订版。

我认为您可以通过服务器端的挂钩轻松进行此设置,该挂钩在推送后执行。