Git ! [被拒绝]主控->;船长(先取)
有没有好办法解释如何在Git中解析“Git ! [被拒绝]主控->;船长(先取),git,github,git-push,Git,Github,Git Push,有没有好办法解释如何在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告诉你先去拿 可能已经有人推到m
![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告诉你先去拿 可能已经有人推到master了,而您的提交已经落后了。因此,您必须获取、合并变更集,然后才能再次推送 如果不这样做(或者更糟糕的是,如果使用
--force
选项强制执行),则可能会弄乱提交历史记录
编辑:我对最后一点进行了更详细的介绍,因为这里的一个家伙刚刚给出了使用--force
选项的非常糟糕的建议
由于git是一个DVCS,理想情况下,许多其他开发人员都在使用同一个存储库(或其分支)与您从事相同的项目。如果您使用变更集强制覆盖,您的存储库将与其他人的不匹配,因为“您重写了历史”。你会让其他人不高兴,存储库也会受到影响。也许世界上的小猫也会哭
TL;博士
--force
选项李>
但你要的是前者。始终使用git,即使您将始终自己使用git,因为这是一个很好的实践。试试这个git命令
git push origin master --force
或力不足-f
git push origin master-f
您应该使用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
尝试:
在写了这段代码之后,我收到了另一个错误:(非快进)
我写这段代码:
git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp
并解决了我的问题很可能是其他人(例如您的同事)将提交提交到了不在本地
master
分支中的origin/master
,而您正试图将一些提交从本地分支推送到服务器。在99%的情况下,假设您不想从源文件
中删除他们的工作,您有两种选择:
2) 将其更改合并到本地分支中,然后推送合并结果<代码>
git签出主机
git pull#在此处解决冲突
git推送
(注意,git pull
在本例中本质上只是一个git fetch
和一个git merge
)
1) 重新设置本地分支的基础,使其看起来像是您的同事先进行了提交,然后您进行了提交。这使提交历史保持良好的线性-并避免“合并提交”。但是,如果您与同事的更改有冲突,则在最坏的情况下,您可能必须为每次提交(而不是仅一次)解决这些冲突。从本质上说,这对其他人更好,但对你更努力。
git pull--重新设置基础#在此处解决冲突
git推送
(请注意,
git-pull--rebase
本质上是一个git-fetch
和一个git-rebase-origin/master
)有时在复制文件时会发生这种情况,通常是自述文件。您可以使用以下命令:
首先使用--mirror标志克隆回购协议的新副本:
$ git clone --mirror git://example.com/some-big-repo.git
然后按照相应的代码进行操作:
即使这不起作用,您也可以简单地编写代码:
$ git push origin master --force
或
您的错误可能是因为合并分支。
只需遵循以下步骤: 第1步:
git pull origin master
(如果您收到任何消息,请忽略它)第二步:
git添加。
第3步:
git commit-m'您的提交消息'
第4步:
git推送原始主机
这对我来说很有效:
$ git add .
$ git commit -m "commit"
$ git push origin master --force
正如错误消息中所述,您必须“先获取”。这对我很有效。 使用以下命令:
git获取原始主机
git拉入原点主控器
git添加。
git提交-m'您的提交消息'
git推送原始主机
按照下面给出的步骤操作,因为我也遇到了同样的问题:
$ git pull origin master --allow-unrelated-histories
(查看本地分支是否可以轻松地与远程分支合并)
(现在将本地git存储库的全部内容推送到您的在线存储库中)我通过签出这样一个新分支来克服这个问题:
# git checkout -b newbranch <SHA of master>
# git branch
* newbranch
master
# git push -u <repo_url_alias> newbranch
#git签出-b newbranch
#吉特分行
*新牧场
主人
#git push-u newbranch
剩下两个分支:Master和newbranch,您可以稍后合并。您只需在远程名称的同时提及您的分支名称。
git fetch origin
git merge origin/master
在我的案例中发生这种情况的原因是,在创建GitHub rep链接时,我使用自述文件对其进行了初始化 在创建Git remote时,不要使用自述文件初始化它,否则它将显示err 不要那样做&它肯定会很好用的
如果您希望在推到主分支后使用readme文件初始化它,这对我有效,因为没有其他解决方案对我有效。 甚至不用武力 只需要经历Git Bash
cd REPOSITORY-NAME
git add .
git commit -m "Resolved merge conflict by incorporating both suggestions."
然后回到我的cmd,我可以:git推heroku master
,这就是我的问题所在。最快的解决方案-
# git checkout -b newbranch <SHA of master>
# git branch
* newbranch
master
# git push -u <repo_url_alias> newbranch
git fetch origin
git merge origin/master
cd REPOSITORY-NAME
git add .
git commit -m "Resolved merge conflict by incorporating both suggestions."