Git推送-“;一切都是最新的”但是工作树文件没有';我不能得到更新。怎么办?

Git推送-“;一切都是最新的”但是工作树文件没有';我不能得到更新。怎么办?,git,githooks,Git,Githooks,1)我在远程服务器主机上有一个primerepo 2)我在远程服务器主机上有一个barerepo 3)我的本地计算机上有一个带有工作树的裸机repo的克隆,裸机被设置为本地repo上的远程设备 有时,一些文件是由我们的共享主机工作人员直接添加的(无暂存),而不使用公共过程“git add and commit”-结果: 我们经常使用git push,它会说:“一切都是最新的”(这是真的,因为bare得到了更新),但是prime没有,因此,工作树文件不在那里 我需要一些东西(hook,cronjo

1)我在
远程服务器主机上有一个
prime
repo

2)我在
远程服务器主机上有一个
bare
repo

3)我的
本地计算机上有一个带有工作树的
裸机
repo的克隆,裸机被设置为本地repo上的远程设备

有时,一些文件是由我们的共享主机工作人员直接添加的(无暂存),而不使用公共过程“git add and commit”-结果:

我们经常使用git push,它会说:“一切都是最新的”(这是真的,因为bare得到了更新),但是prime没有,因此,
工作树
文件不在那里

我需要一些东西(hook,cronjob?),这样,当bare与prime不同时,prime必须用最新的bare文件更新

我们可以使用钩子或cronjob来强制这种行为吗

我们的选择是什么

如果有人有耐心的话,我可以聊天


请提供建议。

我建议在您的裸回购上设置一个post接收挂钩,以便在每次推送时:

git --git-dir=/path/to/prime/.git --work-tree=/path/to/prime pull bare
(此处无需“
cd
”,因为您指定了to
git
,其中是回购目录和工作树)

前提是主要回购协议有一个名为“
bare
”的远程回购协议


您可以创建远程跟踪分支。它不会自动用新的更改更新您的本地树,但它会告诉您远程服务器在本地repo之前提交了多少次。 创建远程跟踪分支的步骤


git branch--跟踪[新分支名称][远程分支名称]

我需要一些时间来处理此信息。我有一些问题。请允许我有时间理解它,如果有任何疑问,请回来。谢谢。这是否意味着,每次推送裸回购时,都会有一个新的远程分支与主回购关联?@MEM否,不会创建新分支。根据拉入
/path/to/prime/.git
的裸git repo(
/path/to/prime/.git
)中注册的内容,更新工作区(
/path/to/prime
)。默认情况下,只有
master
分支被签出并由pull更新。
cd /path/to/prime
git remote add bare /path/to/bare.git