2014-09-19 42 views
1

感谢您的期待。我毫不怀疑,我可能使用了错误的术语在我的问题,所以让我解释这个问题:如何在不从GIT存储库中提取的情况下合并更改?

  1. 开发一个检查代码到GIT。
  2. 之后,开发人员B将代码检查到GIT中,并以某种方式用Developer B已编辑的旧类文件覆盖开发人员A的代码。可能,开发商B在push之前没有pull
  3. 开发人员A有新的工作来检查,提交,拉,推。 GIT说这是一个“成功”(没有合并问题标记)
  4. 开发人员A回到他的代码,现在不会建立,因为突然工作,我做了第一个检查现在失踪。

所以,这是我的问题。我使用this SO postreset我的代码实例到我上一次成功的提交(上面的第3步),并且工作得很好。所以现在我可以建立起来,我的所有工作都再次完成。

的问题

虽然我的本地代码的副本,现在看起来又大,我不能push它的Git没有首先做的什么已经是在回购一pull。不幸的是,当我做一个pull时,我的所有工作都被覆盖了,它并没有给我合并的机会。

有什么建议吗?

+3

嗯,你们不应该覆盖其他代码,除非你是力推分支机构。它总是会产生冲突,您必须解决合并问题。我建议你们使用功能分支,这样你就不会像彼此的工作那么多。即http://nvie.com/posts/a-successful-git-branching-model/ – 2014-09-19 00:07:05

+0

@ LukeHutton - 谢谢,我同意这很奇怪。我不能排除推动力量。也许那是无意中发生的。 – 2014-09-19 00:09:49

回答

1

如果已经发生了强制推送,并且如果您认为自己盒子上的回购状态是希望存储库处于的状态,则只需再次执行git push -f即可。

1

为什么不把你的本地修改分支到一个单独的分支。把回购拉回你的主分支。本地合并。然后推回去回购?

1

是的,您可以在不拉动的情况下在本地合并更改,然后在修复混乱之后将其推回到远程回购。

相信在远程回购你的图是:

C1 - C2 

和本地Git是:

C1 - C1' 

因为你的C1' 不是基于从C2什么,你不能犯(除非你强制执行)

你可以通过先将git fetch更新你的本地git图如下来修复这个问题:

C1 - C1' (local/master) 
    \- C2 (origin/master) 

然后你就可以通过

git merge origin/master 

合并你可能会发生冲突。之后你解决这些问题都应该得到这样一个图:

C1 - C1' ----------  C3 (local/master) 
    \- C2 (origin/master)  -/ 

后那么你应该能够在不--force

1

推从git help push

For a failed update, more details are given: 
rejected 
    Git did not try to send the ref at all, typically because it is not a fast-forward and you did not force the update. 
remote rejected 
    The remote end refused the update. Usually caused by a hook on the remote side, or ... 
  1. 你必须遵循上述规则才能推动(即你不能打破Git的历史,松散的提交...)
  2. 你应该(几乎)不会强迫推。
  3. git pull命令是git fetch && git merge(或git rebase,如果使用--rebase选项)的快捷方式。所以你可以先获取然后手动合并远程更改。

git status告诉你,如果你是上游的背后,如果你分支可以很容易地更新:

Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. 
    (use "git pull" to update your local branch) 

Git-prompt是非常方便快速的了解是否有远程的变化来检索和合并。请参阅“u-4”在git fetch后的提示和4个进入提交内容git log [email protected]{u}报道名单:

(master $ u= origin/master)]$ git fetch 

(master $ u-4 origin/master)]$ git log [email protected]{u} --oneline 
7edead8 NXP-15160 fixing test class path for redis test-jar 
d507b6f NXP-15160 renamed cache component 
aaf64ab NXP-15161 re-worked redis feature activation 
23b1d2c NXP-15254: use concurrent hash maps to avoid locks on service access 
相关问题