使用git使远程目录保持最新

使用git使远程目录保持最新,git,Git,我已经设置了一个远程目录,并在其中初始化了.git 我可以推送到这个repo,但我需要它将项目拉到目录中,以模仿本地repo的init结构 这是我需要运行post接收挂钩的地方吗?如何从目录中的local.git中提取项目文件 谢谢你的帮助 使用git push可以将git存储库中的更新推送到不同的远程位置 当您推送到远程服务器时,您所做的只是将更改发送到git存储库。如果希望更改目录结构,则需要以某种方式签出最新版本的代码 您可以使用post接收挂钩来完成此操作。您需要快进远程分支。请注意,在

我已经设置了一个远程目录,并在其中初始化了.git

我可以推送到这个repo,但我需要它将项目拉到目录中,以模仿本地repo的init结构

这是我需要运行post接收挂钩的地方吗?如何从目录中的local.git中提取项目文件


谢谢你的帮助

使用git push可以将git存储库中的更新推送到不同的远程位置

当您推送到远程服务器时,您所做的只是将更改发送到git存储库。如果希望更改目录结构,则需要以某种方式签出最新版本的代码

您可以使用post接收挂钩来完成此操作。您需要快进远程分支。请注意,在post接收挂钩完成之前,客户端不会断开连接

以下是您要查找的内容的快速概述:

请参阅以下帖子:


这个网站似乎也很有帮助:

.git/hooks
中创建一个名为
post receive
的钩子。该文件应包含以下内容

#!/bin/sh
GIT_WORK_TREE=/path/to/where/you/want/working/files git checkout -f
我在尝试使用不是
--bare
的git回购时遇到了一些问题(设置时使用
git init--bare
,然后将工作目录放在其他地方)

例如:

mkdir yourbarerepo.git
cd yourbarerepo.git
git init --bare
cd hooks
touch post-receive
nano post-recieve
  #paste in contents above
  #make sure the path where you want the working files to go is already created

如果本地目录结构和远程目录结构都包含在git初始化的目录中,它们会有什么不同?@WillWilliams当我推到远程目录时,只更新隐藏的文件。我可以克隆并从
workingdir/.git
中提取文件,但它不会在
workingdir
中自动构建项目。我的想法是,我推到删除,它更新项目文件,然后重新启动过程。我已经想出了在文件更改时重新启动流程的办法。我只需要在.git收到推送后从中提取文件。这有意义吗?谢谢我明白你现在想做什么了。文件没有更新,因为远程设备只是接收git中的更改-您希望远程设备签出或拉入最新的更改。