当 git pull 引起冲突但 git pull --rebase 没有冲突时,这意味着什么?

Jas*_*ker 4 git merge pull rebase

我正在从只有我有权访问的存储库中提取数据。据我所知,我只从一个存储库推送到它。有几次,我尝试推动它并得到了这个:

To jbaker@192.168.2.216:tsched_dev.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'jbaker@192.168.2.216: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.
Run Code Online (Sandbox Code Playgroud)

一般来说,这只是意味着我必须做git pull(尽管所有更改都应该是可快速转发的)。当我执行 a 时git pull,我会遇到冲突。如果我这样做git pull --rebase,效果很好。我究竟做错了什么?

Ark*_*nez 5

这意味着当前的 origin/master 和当前的 master(与您自己的提交)不兼容,但是如果您自上次更新以来获得了更改并将它们放在您自己的提交之前,则会导致非冲突状态。

基本上这取决于您如何排序有冲突的提交。通过变基,您可以将原始数据放在您的数据之前,而通过合并,您可以将原始数据作为一个整体来对抗您的主人,这可以产生影响。