2010-05-20 141 views
2

我從只有我有權訪問的存儲庫中提取。據我所知,我只從一個存儲庫推送到它。有幾次,我試圖推到它,並獲得這樣的:當git pull導致衝突,但是git pull --rebase不會導致什麼?

To [email protected]:tsched_dev.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:tsched_dev.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes before pushing again. See the 'Note about 
fast-forwards' section of 'git push --help' for details. 

一般情況下,這只是意味着我必須做一個git pull(儘管所有的變化應該是快速轉發)。當我做git pull時,我會碰到衝突。如果我做git pull --rebase,它工作正常。我究竟做錯了什麼?

+0

我認爲這應該在超級用戶的網站上。我們通常在那裏問這些問題 – vodkhang 2010-05-20 13:46:04

+0

根據您的輸出,您嘗試推送,而不是拉。 – ThiefMaster 2010-05-20 13:53:17

+0

@ThiefMaster - 你是對的。我的錯。 – 2010-05-20 16:51:23

回答

3

這意味着當前的原點/主點和當前主點(與您自己的提交)不兼容,但是如果自上次更新後得到更改並將它們放在您自己的提交之前,則會導致非衝突狀態。

基本上,這取決於你如何訂購提交你有衝突。有了rebase,你可以在原版之前放置原始版本,合併後將原始版本作爲整體與你的主人進行整合,這可以起到重要作用。

+0

我明白了。換句話說,'git fetch'可以在不使用'git pull --rebase'的情況下解決問題? – 2010-05-20 16:52:38

+0

無關緊要,你已經用拉取取和合並的方式取得了。重點在於重組將會起作用,並且合併將會發生衝突 – 2010-05-20 16:59:52

相關問題