git远程更新失败。但改遥控器后成功

时间:2018-10-22 11:06:40

标签: git

在今天之前,服务器可以正常工作。 但是今天我打电话

  

git远程更新

错误消息显示

Fetching A
Fetching B
fatal: internal server error
remote: internal server error 
fatal: protocol error: bad pack header
error: Could not fetch B

奇怪的是,在我先删除A遥控器后,我可以更新B成功。然后,我将B遥控器添加回去并再次调用update。两台服务器更新成功。

我可以每次报告这种情况。主存储库位于A

  1. 初始化服务器存储库
  2. 同步项目
  3. 添加B遥控器
  4. 调用“ git远程更新”

我不知道这是怎么发生的,如果有人能告诉我如何解决此问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

该故障强烈表明服务器B上的存储库已损坏。

首先在您不更新A时它起作用的事实表明,更新A会删除一些remote/A引用,这些引用在本地存储库中保留了提交的良好副本。避免这种情况,您将保留必须从B收到的提交的良好副本,以便当您向B询问其提交时,您的Git会说:啊,我已经有了这些提交因此,您的Git不会向B的Git要求这些提交。如果B的理论(尚未证明,但有可能)损坏仅影响那些提交,那么避免要求这些提交也就避免了证明存在损坏。

如果B 上的存储库已损坏-您可以通过登录到B服务器并在有问题的存储库上使用git fsck进行测试,则应将其替换为如果可能,在其他地方找到副本。