有没有很好的方法来解释如何解决“! [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'
Answers:
答案就在那里,git告诉您先获取。
可能其他人已经推动精通,而您的承诺落伍了。因此,您必须获取,合并变更集,然后才能再次推送。
如果您不这样做(或更糟糕的是,如果使用 --force
选项),则可能会弄乱提交历史记录。
编辑:关于最后一点,我会做得更详细,因为这里的一个人刚刚给了使用 --force
选项。
由于git是DVCS,因此理想情况下,许多其他开发人员正在使用相同的存储库(或其中的一个分支)来与您从事同一个项目。如果用更改集强行覆盖,则存储库将与其他人的存储库不匹配,因为“您重写了历史记录”。您将使其他人不满意,并且存储库将遭受损失。也许世界上的小猫也会哭。
TL; DR
--force
选项。不过,您要求的是前者。坚持1),即使您总是自己使用git,也要始终这样做,因为这是一个好习惯。
尝试:
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
。
您应该使用 git pull
,该命令执行a git fetch
,然后执行git merge
。
如果使用git push origin master --force
命令,将来可能会遇到问题。
试试这个git命令
git push origin master --force
或力量不足 -f
git push origin master -f
如错误消息中所述,您必须“先获取”。这对我有用。使用命令:
git fetch origin master
然后按照以下步骤进行合并:
git pull origin master
git add .
git commit -m 'your commit message'
git push origin master
请尝试使用此命令解决-
git push origin master --force
要么
git push origin master -f
您可以使用以下命令:首先使用--mirror标志克隆存储库的新副本:
$ git clone --mirror git://example.com/some-big-repo.git
然后相应地遵循以下代码:
即使不起作用,您也可以简单地编写以下代码:
$ git push origin master --force
要么
$ git push origin master -f
请按照以下步骤操作,因为我也遇到同样的问题:
$ git pull origin master --allow-unrelated-histories
(以查看本地分支是否可以轻松地与远程分支合并)
$ git push -u origin master
(现在将本地git存储库的所有内容推送到您的在线存储库)
可能是其他人(例如您的同事)已经将提交提交到origin/master
不在本地master
分支机构中的提交,并且您正在尝试将某些提交从本地分支推送到服务器。在99%的情况下,假设您不想从中删除他们的工作origin
,则有两种选择:
2)将其更改合并到您的本地分支中,然后推送合并的结果。
git checkout master
git pull # resolve conflicts here
git push
(请注意,git pull
本质上只是agit fetch
和agit merge
在这种情况下。)
1)重新设置本地分支机构的基础,以便看起来您的同事先进行了提交,然后又进行了提交。这样可以使提交历史记录保持良好的线性关系,并避免“合并提交”。但是,如果您与同事的更改有冲突,则在最坏的情况下,您可能必须为每次提交(而不是一次)解决这些冲突。从本质上讲,这对其他所有人都更好,但对您来说却需要更多的精力。
git pull --rebase # resolve conflicts here
git push
(请注意,git pull --rebase
本质上是agit fetch
和a git rebase origin/master
。)
有时,当您复制文件时通常会出现自述文件的情况。
您的错误可能是由于合并分支所致。
只需遵循以下步骤:
步骤1 : git pull origin master
如果收到任何消息,请忽略它)
步骤2:git add .
步骤3:git commit -m 'your commit message'
步骤4:git push origin master
在我的情况下发生的原因是在创建GitHub rep链接时,我使用README文件对其进行了初始化
创建Git远程时,请勿使用README文件对其进行初始化,否则将显示err
不要那样做,它肯定会很好的,如果您希望在推送到master分支之后,可以使用自述文件对其进行初始化
这对我有用,因为没有其他解决方案对我有用。甚至没有力!
只需经历Git Bash
cd REPOSITORY-NAME
git add .
git commit -m "Resolved merge conflict by incorporating both suggestions."
然后回到我的cmd,我可以:git push heroku master
问题是我的情况。
--force
选项对我有用 git push origin master --force
这项工作对我来说
git初始化
git添加--all
3.git commit -m“名称”
4. git push origin master --force
这为我工作:
$ git add .
$ git commit -m "commit"
$ git push origin master --force
问题解决了
我遇到的问题
! [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
非常感谢