! [rejected] master -> master (fetch first)'
"问题?当我使用这个命令
$ git push origin master
时,它显示一个错误消息。! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'
! [rejected] master -> master (fetch first)'
"问题?$ git push origin master
时,它显示一个错误消息。! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'
答案就在那里,git 告诉你需要先fetch。
可能有其他人已经push到主分支了,而你的提交落后了。因此你需要先fetch,合并变更集,然后才能再次push。
如果你不这样做(甚至更糟的是使用 --force
选项强制执行),你可能会搞乱提交历史记录。
编辑:我会更详细地解释最后一点,因为这里有个人给出了非常糟糕的建议,让你使用 --force
选项。
由于git是一个DVCS,理想情况下许多其他开发人员正在使用相同的存储库(或其分支)。如果你强制用你的变更集覆盖了别人的变更集,那么你的存储库将与其他人的存储库不匹配,因为“你重写了历史记录”。这将使其他人不高兴,存储库也会受到影响。可能全世界还会有一只小猫咪哭泣。
简而言之:
--force
选项。然而你要求前者,因此始终使用1)即使你总是自己使用git,因为这是一个好的实践方法。
fetch
不会在本地更改您的代码,因为它只获取有关远程存储库中最新更改的元数据信息。基本上,它向您提供了自上次拉取以来发生的最新情况。如果您想将实际更改带入本地存储库,则需要使用 pull
。pull
所做的与 fetch
相同,并且实际上获取它们。 - minasrc尝试:
git fetch origin master
git merge origin master
写完这段代码后,我收到了另一个错误:(非快进)
我写的代码如下:
git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp
并解决了我的问题
git merge master
。 - mike你应该使用 git pull
命令,它会执行 git fetch
然后再执行 git merge
。
如果你使用 git push origin master --force
命令,未来可能会遇到问题。
拉取(pull)始终是正确的方法,但有一种例外情况,那就是当您尝试将非Git文件系统转换为Github存储库时。在那种情况下,您需要强制执行第一个提交。
git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/userName/repoName.git
git push --force origin master
正如错误信息所述,您必须“先拉取(fetch)”。这对我起了作用。
使用以下命令:
git fetch origin master
然后按照以下步骤合并:
git pull origin master
git add .
git commit -m '您的提交信息'
git push origin master
尝试使用这个git命令
git push origin master --force
或者使用强制选项 -f
git push origin master -f
$ git pull origin master --allow-unrelated-histories
(查看本地分支是否可以轻松合并到远程分支)
$ git push -u origin master
这种情况发生在你的队友已经提交代码并且他的提交位于最上方。为了避免你需要进行rebase(合并、抓取)操作。
我通过以下步骤解决了我的问题。
git pull --rebase origin master
git push -u origin master
你可以使用 git log
查看日志记录。
$ git clone --mirror git://example.com/some-big-repo.git
然后根据代码进行操作:
如果以上方法不起作用,您可以简单地编写代码:
$ git push origin master --force
或者
$ git push origin master -f
最快的解决方案-