有没有一种好方法可以解释如何解决" ! [rejected] master -> master (fetch first)'
"在Git?
当我使用此命令$ git push origin master
时,它会显示错误消息。
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'
答案 0 :(得分:75)
答案就在那里,git告诉你先取。
可能其他人已经推动掌握了,你的承诺落后了。因此,您必须获取,合并变更集,然后您才能再次推送。
如果你不这样做(或者更糟糕的是,如果你使用--force
选项强制它),你可能会搞乱提交历史。
--force
选项的非常糟糕的建议。
由于git是一个DVCS,理想情况下,许多其他开发人员正在使用相同的存储库(或它的一个分支)处理与您相同的项目。如果你用变更集强行覆盖,你的存储库将与其他人不匹配,因为“你重写了历史”。你会让其他人不高兴,存储库也会受到影响。世界上的一只小猫也可能会哭。
TL; DR
--force
选项。 答案 1 :(得分:39)
尝试:
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
解决了我的问题
答案 2 :(得分:18)
你应该使用git pull
,这个命令执行git fetch
然后执行git merge
。
如果使用git push origin master --force
命令,将来可能会遇到问题。
答案 3 :(得分:10)
pull始终是正确的方法,但是当您尝试将none-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
答案 4 :(得分:10)
如错误消息中所述,您必须“先获取”。这对我有用。 使用命令:
git fetch origin master
然后按照以下步骤进行合并:
git pull origin master
git add .
git commit -m 'your commit message'
git push origin master
答案 5 :(得分:9)
试试这个git命令
git push origin master --force
或力量不足-f
git push origin master -f
答案 6 :(得分:4)
请尝试使用此命令解决-
git push origin master --force
或
git push origin master -f
答案 7 :(得分:3)
您可以使用以下命令: 首先使用--mirror标志:
克隆repo的新副本$ git clone --mirror git://example.com/some-big-repo.git
然后按照相应的代码进行操作:
Adding an existing project to GitHub using the command line
即使这不起作用,您也可以简单地编码:
$ git push origin master --force
或
$ git push origin master -f
答案 8 :(得分:3)
请按照下面给出的步骤进行操作,因为我也遇到了同样的问题:
$ git pull origin master --allow-unrelated-histories
(查看本地分支是否可以轻松地与远程分支合并)
$ git push -u origin master
(现在将本地git存储库的所有内容推送到您的在线存储库中)
答案 9 :(得分:2)
有时候,当您通常以README排序复制文件时会发生这种情况。
答案 10 :(得分:1)
最快的解决方案-
答案 11 :(得分:1)
我通过签出像这样的新分支来克服了这个问题:
# git checkout -b newbranch <SHA of master>
# git branch
* newbranch
master
# git push -u <repo_url_alias> newbranch
剩下2个分支:Master和newbranch,以后可以合并。
答案 12 :(得分:1)
首先,您应该使用 git pull
,然后命令执行 git fetch
,然后执行git merge。
如果使用 git push origin master --force
命令,将来可能会遇到问题。
答案 13 :(得分:1)
很可能其他人(例如您的同事)已将提交置于您当地origin/master
分支机构中的master
,并且您正试图推送一些提交内容从本地分支到服务器。在99%的情况下,假设您不想从origin
删除他们的作品,您有两种选择:
2)将他们的更改合并到您的本地分支,然后推送合并的结果。
git checkout master
git pull # resolve conflicts here
git push
(请注意,在这种情况下,git pull
基本上只是git fetch
和git merge
。)
1)重新启动您的本地分支,以便您的同事看起来像是先提交,然后您提交了您的提交。这使得提交历史保持良好和线性 - 并避免了&#34;合并提交&#34;。但是,如果您与同事的更改发生冲突,则在最坏的情况下,您可能必须为每个提交(而不是仅仅一次)解决这些冲突。基本上这对其他人来说更好,但对你来说更省力。
git pull --rebase # resolve conflicts here
git push
(请注意,git pull --rebase
基本上是git fetch
和git rebase origin/master
。)
答案 14 :(得分:0)
使用此命令很简单:
git push -f原始主机
它将完成您的工作
答案 15 :(得分:0)
这对我有用:
$ git add .
$ git commit -m "commit"
$ git push origin master --force
答案 16 :(得分:0)
您只需提及分支机构名称和远程名称即可。
stdint.h
答案 17 :(得分:0)
您的错误可能是由于合并分支造成的。
只需遵循以下步骤即可:
第1步:git pull origin master
(如果您收到任何消息,请忽略它)
步骤2:git add .
步骤3:git commit -m 'your commit message'
步骤4:git push origin master
答案 18 :(得分:0)
我的情况发生的原因是在创建GitHub rep链接时,我使用 README文件
对其进行了初始化。创建Git远程时,请勿使用README文件对其进行初始化,否则会显示err
不要那样做,它肯定可以正常工作 如果您希望在推送至master分支后进行自述,请改为使用自述文件进行初始化
答案 19 :(得分:0)
这对我有用,因为没有其他解决方案对我有用。 甚至没有力量!
只需经历Git Bash
cd REPOSITORY-NAME
git add .
git commit -m "Resolved merge conflict by incorporating both suggestions."
然后回到我的cmd,我可以:git push heroku master
这是我的问题。
答案 20 :(得分:0)
--force
选项对我有用,我用过git push origin master --force
答案 21 :(得分:0)
! [拒绝]管理员->管理员(先获取) 错误:无法将一些引用推送到“ git@github.com:”
使用--force命令成功解决了该问题。
因此,您必须使用
git push origin master --force
答案 22 :(得分:0)
使用此命令:
.event.item.ts
答案 23 :(得分:0)
这对我有用
git init
git add --all
3.git commit -m“名称”
4.git push origin master --force
答案 24 :(得分:-1)
已解决的问题
我遇到的问题
! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/repo_name/repo-hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g.hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我也有同样的问题。问题是您在其他存储库中的commits
未成功pushed
,因此您需要运行以下命令:
git fetch origin master
输出:From https://github.com/username/repo-name
* branch master -> FETCH_HEAD
git merge origin master
输出:Merge made by the 'recursive' strategy.
repo-name/ReadMe.md | 1 -
1 file changed, 1 deletion(-)
git push
输出:Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.00 KiB | 1.00 MiB/s, done.
Total 6 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 1 local object.
To https://github.com/user_name/repo-name.git
0852d5vf..70v56d9 master -> master
非常感谢您