我刚刚拉了一个新的分支,进行了一些本地更改,承诺并试图推动。我得到了这个错误: ! [rejected] groups -> groups (non-fast forward)所以我试图拉动,但被告知 Already up-to-date.

这是我拉的东西然后推动的东西。

~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
 ! [rejected]        groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'

谁能解释如何发生这种情况以及如何解决?

有帮助吗?

解决方案

当您拉动分支时,您是否使用“ - 轨道”选项(为了保持本地分支跟踪远程分支)。如果您没有,它可以解释不起作用的“合并”命令。

您可以手动合并:

git fetch
git merge origin/groups

要比较本地和远程存储库,我建议您使用此命令(添加为别名,它很有用):

git log --graph --oneline --all --decorate

它将打印项目历史树,显示分支标签。因此,您将看到您的分支和原始分支在哪里分歧。

注意:如果您想保留线性历史记录,而不是“合并”,则可以在推动之前对遥控器上本地分支进行“重新构想”:

git rebase origin/groups
git push origin groups

其他提示

我有一个不同的问题来到这里。

我的git设置为推动所有分支。我当时在分支机构上,但它也试图推动主人,这不是最新的。诀窍是注意到它试图推动大师:

To git@git.machine:repo
 ! [rejected]        master -> master (non-fast-forward)

我将以下内容添加到我的.gitConfig中,默认情况下仅推动当前分支:

[push]
    default = current

这不是问问问题的答案。我的错误消息有不同的问题。

我的本地分支没有远程分支可以正确地从配置中提取更改[git Pull]。从O/P的O/P可以明显看出 git remote show origin. 。所以,我不得不使用 git pull origin <branch_name> 代替 git pull 拉更改。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top