![](/img/trans.png)
[英]git push without a target-end merge (pull is to fetch as push is to ???)
[英]git can merge and fetch but not push and pull
我知道这类问题到处都有,但我发现的答案都没有帮助。 典型问题:
[me@my_server]$ git merge origin development
Already up-to-date. Yeeah!
[me@my_server]$ git push origin development
To ssh://git@git.work.com:8022/my_project
! [rejected] development -> development (non-fast-forward)
error: failed to push some refs to 'ssh://git@git.work.com:8022/my_url'
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 origin development
(它将获取起源/开发中的更改并将您的内容合并到其中),然后git push origin development
(这将推动您的新更改,并合并到Origin的最新内容之上)到服务器,以使其能够在此处进行快速转发合并)。 如果您想以这种方式执行git pull --rebase
而不是合并,也可以这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.