我有一个奇怪的问题,使用Apache2上的DAV配置了GIT。

如果需要,我将提供更多详细信息,但这是问题的高级概述。

我有3个存储库的克隆:

  1. 裸露的人从
  2. 一个在机器上
  3. 一个机器B

我在机器A上进行了1个更改,然后我推了所有的更改,并对两者进行了拉动。问题是,由于某种原因,我在拉动机器B后看不到我的最后一次更改。

关于两台机器上的遥控器也没有任何消息。

怪异的部分是:

  • 如果我在裸存储库上进行“ git log”,那么机器A的最后一个更改将在那里
  • 如果我做另一个裸仓库的克隆,则不会在那里进行更改。它只能达到机器B所看到的最后更改。

这是服务器配置问题还是GIT问题?我已经有很多月了这个问题。

git branch -a 印刷:

机器A:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

机器B:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

.git/config 对彼此而言:

[core]
  repositoryformatversion = 0
  filemode = false
  bare = false
  logallrefupdates = true
[branch "master"]
  remote = origin
  merge = refs/heads/master
[remote "origin"]
  url = http://<url>/p/home.git
  fetch = +refs/heads/*:refs/remotes/origin/*
有帮助吗?

解决方案

由于您已经确认我的猜测是正确的,因此我将其添加为答案:)听起来这个问题是该GIT常见问题中描述的问题:

https://git.wiki.kernel.org/index.php/gitfaq#my_http_repository_has_updates.2c_which_.27git_clone.27_misses.__what_happened.3f

有一个示例挂钩,称为tost-update。样本中的.git/ hooks/您可以重命名以自动运行以自动运行 git update-server-info 推动后。这会生成愚蠢的HTTP运输所需的信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top