1

我在服务器上有一个裸机和一个测试存储库,以及从裸机克隆的本地存储库。我还有一个由我的本地修复分支跟踪的远程/原始/修复分支。我在本地进行了一些更改,提交并推送。当我第一次使用git push -u origin fix时它起作用了,它用我的更改创建了分支。

现在我做了另一个提交并推送它,git push origin fix。如果我在本地运行git branch -av,我会看到具有正确最后一次提交的 origin/remote/fix 分支,但在服务器上,由于某种原因,最后一次提交是前一次。

我是 RTFM,但我不知道为什么会这样。非常感谢任何帮助。

编辑:在服务器上,当尝试签出源/修复分支时,我收到以下警告

warning: refname 'origin/fix' is ambiguous.

我认为这可能是问题所在?在服务器上的测试存储库中运行git branch -av会产生:

* fix                  a5ed3f6 test1 
origin/fix             a5ed3f6 test1
remotes/origin/fix     df46078 test2

我该如何解决这个问题,以更新测试回购?我需要将更改从 remotes/origin/fix 传播到 fix 分支?

另外,在这种情况下, origin/fix 是裸机中的修复分支,而 remotes/origin/fix 是我的本地分支?还是我在这里完全偏离轨道?

4

2 回答 2

0

我之前遇到过这种情况,我没有使用正确的界面命令,而是在服务器上编辑了引用以删除不需要的引用(在这种情况下,有人创建了一个名为 HEAD(!),所以我这样做了cd /some/path/to/repo.git; rm refs/branchname/HEAD)。粗鲁,但它奏效了。:-)

于 2012-05-03T05:07:00.813 回答
0

测试仓库中的“修复”分支也必须设置为跟踪裸仓库中的分支。

于 2012-05-03T12:45:41.167 回答