2014-09-19 77 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 
相關問題