GIT - 更新远程存储库'工作文件'

时间:2015-10-26 20:15:31

标签: git

我们刚开始在多开发者网站上使用git进行源代码管理。

目前我们已经拥有一个裸露的远程存储库,我们都可以对其进行克隆和开发。精细。

但我们必须获取遥控器的另一个克隆,以便为我们提供实际上传到网络服务器的源代码。

如果我们的远程存储库不是裸的,那么它将包含工作文件 - 就像我们的克隆一样。

据我了解,这些将来自创建存储库 我无法解决的是如何从远程存储库本身更新这些“工作文件”,因为我们可以直接针对它运行。

我希望制作场景。

我要么想知道这一切是如何运作的,或者我是如何使用它的,但我可以看到它!

4 个答案:

答案 0 :(得分:0)

您的远程存储库应该仍然是一个裸存储库。服务器上的工作文件没有意义。没有开发人员直接在该计算机上工作。是的,有更多的步骤来修改git中的远程存储库,这是设计的。为方便起见,请勿尝试跳过此过程中的步骤。

答案 1 :(得分:0)

什么是裸存储库

如上所述,裸存储库不会在其根目录中包含任何常规文件。 而是存在.git文件夹内容。

如何更新代码文件

  

我无法解决的是如何从远程存储库本身更新这些“工作文件”,因为我们可以直接针对它运行。

如果您想处理文件并修改它们,您必须使用git clone克隆存储库 它不应该在您的服务器上运行git init --bare,您需要在orrder中设置一些 transfer protocol 以与服务器“对话”。

一旦你拥有了repo和teh传输协议,你就可以简单地克隆项目,修改它的内容和tehn提交并推回到原始的回购协议。

答案 2 :(得分:0)

作为第一步,您可以在遥控器上重新创建存储库或直接使其成为非裸机,如this answer中所示。拥有非裸存储库后,您可以创建更新后或提交后挂钩以运行git reset --hard HEAD。话虽如此,这是一个坏主意。在您决定继续之前,您应该阅读以下帖子:Git: how to make remote directory update when pushed to?

答案 3 :(得分:0)

  

我无法解决的是如何从远程存储库本身更新这些“工作文件”,因为我们可以直接针对它运行。

     

我要么想知道这一切是如何运作的,或者我是如何使用它的,但我可以看到它!

不,你已经明白了。您无法远程更新Git存储库。

希望使用Git将更改直接推向生产是一种普遍的愿望。你不能,也不想。为什么?如果生产副本有未提交的更改或存在合并问题,请考虑会发生什么?生产中断。

相反,需要从生产服务器更新生产克隆。因为git pull可能涉及合并,如果存在冲突可能会破坏生产,理想情况下应该git fetch而不是拉动它,然后签出标记版本。这可以保证没有合并冲突,并且您确切地知道您正在获得什么。

一般情况下,不要尝试使用Git作为发布经理。它可以是发布管理器的一部分,但它本身不能很好地工作。