GIT:我的队友无法完成我推动的更改

时间:2014-03-24 20:23:28

标签: git

我对GIT不熟悉,事实上它几乎就像SVN(我的舒适区)一样。有一个"单身"远程存储库,我们都是从一个主分支推送和提取更改。我推了一些更改,然后我将其拉到第四个位置(生产服务器),所以我知道我的更改是通过"单个"远程存储库。

我的git推动产生了"一切都是最新的"消息。

如何调试情况。我认为这个问题已经结束,但我甚至不知道如何引导他进行调查。我也找不到任何记录来源。

任何有关诊断问题的方法的帮助都将受到赞赏。

谢谢

2 个答案:

答案 0 :(得分:0)

首先,你需要确保你已按下你想要的东西 检查输出:

  • git branch -avv(查看您是否有活动分支,或者如果您在detached HEAD mode
  • git log(检查分支上最近的最新SHA1)
  • git ls-remote origin(看看是否确实推送了相同的SHA1)

然后你可以在生产方重复这些检查,看看为什么git pull无法获取并合并你推送的最近的SHA1。

答案 1 :(得分:0)

这是我的2美分:

假设您有以下提交的两个分支(无订单,但是从左到右):

person   1 2 3 4 5 6 7 8

Master   1 2 3 4 5 6 9

现在,当person分支中的人试图拉master时,git发现分支中有一个Master没有的提交。拉力基本上是两个分支的merge。在这种情况下,person分支的人可以这样做:

git reset --soft HEAD~2
git pull origin Master
git add ##### Whatever Files #####
git commit -m "10" 
git push origin person

他刚才做的是重置提交号7和8,但保留了由于它们而改变的代码。他与master的提交级别不同,因此可以获得第9名。他现在可以推动更改。人员分支现在是:

person   1 2 3 4 5 6 9 10

或者,他也可以reset然后stash进行更改,然后应用stash

现在,有时用户可能会发现他的遥控器与他所从的地方不同。在这种情况下,只需检查git remove -v,如有必要,将其更改为您克隆的正确链接git remote set-url origin git://new.url.here

他也可能在获取正确的分支时遇到问题。在这种情况下,他应该这样做:

`git fetch` 

将拉出所有远程分支,然后执行git checkout branchName

希望这有帮助。