2010-05-20 113 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

相关问题