Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 被拒绝的主机->;master(非快进)_Git_Push - Fatal编程技术网

Git 被拒绝的主机->;master(非快进)

Git 被拒绝的主机->;master(非快进),git,push,Git,Push,我正在尝试推送我的项目(新存储库中的所有文件)。我遵循这些步骤,但当我使用git push-u origin master推送时,会出现以下错误: ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:asantoya/projectnewbies.git' To prevent you from losing history, n

我正在尝试推送我的项目(新存储库中的所有文件)。我遵循这些步骤,但当我使用
git push-u origin master
推送时,会出现以下错误:

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

我多次遇到此错误,但都不知道该怎么办。

正如错误消息所说:
git pull
然后再尝试
git push
。显然,您的本地分支与跟踪分支不同步


根据项目规则和您的工作流程,您可能还希望使用git pull--rebase

解决此问题的唯一方法是删除本地和git回购,并在两端再次创建相同的回购。目前还可以使用。

注意:这从来都不是git的推荐用法。这将覆盖远程服务器上的更改。仅当您100%知道本地更改应推送到远程主机时,才执行此操作

尝试以下操作:
git push-f origin master
您需要执行的操作

git branch
如果输出类似于:

* (no branch)
master
那就做吧

git checkout master

请确保没有任何挂起的提交,因为签出将丢失所有未提交的更改。

我刚刚收到此错误

在创建本地git存储库之后,我创建了一个github存储库,因此在推送到github之前,我需要接受对本地的更改。在本例中,唯一的更改是在创建github存储库时作为可选步骤创建的自述文件

git pull https://github.com/*username*/*repository*.git master
从project github页面的此处获取存储库URL:

然后我重新初始化(可能不需要)

然后推送:

git push

!![已拒绝]主机->主机(非快进)

不要惊慌,这是非常容易修复的。您所要做的就是发出拉力,您的分支将快速前进:

$git pull myrepo master

然后重试推送,一切正常:

$git-push-github-master

尝试以下命令:“git-pull-origin-master”

这对我有用


检查此链接:

如果
git pull
没有帮助,那么您可能已经推送了更改(A),之后使用了
git commit--amend
来添加更多更改(B)。因此,git认为您可能会丢失历史记录—它将B解释为不同的提交,尽管它包含来自a的所有更改

             B
            /
        ---X---A
如果在
A
之后没有人更改回购协议,那么您可以执行
git push--force

但是,如果其他人在
A
之后发生变化:

             B
            /
        ---X---A---C
然后,您必须重新设置人员从
A
更改为
B
C
->
D


或者手动修复问题。我还没有想到怎么做。

我在一台开发机器上遇到了这个问题。
dev
分支运行正常,但
master
分支给了我(当在
dev
分支上时,
git push
ing时):

所以我试着:

git checkout master
git pull
这给了我:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.
我发现
.git/config
中缺少主分支,并添加了:

[branch "master"]
    remote = origin
    merge = refs/heads/master
之后,
gitpush
dev
分支上也运行良好。

我也遇到了同样的问题。 我使用Git-Totoise。 只需右键单击->TotoiseGit->清理。 现在您可以推到Github
它对我来说很好:D

我在github中创建了新的回购协议,我也遇到了同样的问题,但它在拉取时也遇到了问题,所以这对我来说很有效

但这在已经有很多这样的代码的回购协议中是不建议的 可能会把一切搞砸


这是因为您对其主控形状进行了相互冲突的更改。您的存储库服务器无法用这些词告诉您,所以它会给出这个错误,因为这不是他为您处理这些冲突的问题,所以他要求您自己处理。作为

1-
git pull
这将把你的代码从你的存储库合并到你的网站主代码中。 因此,冲突被显示出来

2-处理这些手册中的冲突

3-


普雷斯托,你的问题已经解决了。

这发生在我身上,当时我在开发分支,而我的主分支没有最新的更新

所以当我试图从开发分支推git时,我犯了那个错误

我通过切换到主分支,git pull,然后返回开发分支和git push来修复它

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git push

警告:

使用“
git pull
”并不总是一个解决方案,所以要小心。如果您有意更改存储库历史记录,则可能会遇到此问题(Q中提到的问题)。在这种情况下,git会将您的历史更改与远程回购中的新更改混淆。因此,您应该使用一个
git push--force
,因为调用
git pull
将撤销您有意对历史记录所做的所有更改

使用此命令:

git pull--允许不相关的历史记录

比如:

git pull--允许不相关的历史记录源主机


当项目没有任何共同祖先时,会发生此错误。

这是因为您在主节点中做了一些更改,因此项目要求您首先提取。如果仍要推送,可以通过键入以下命令使用暴力:

git push -f origin master
请记住首先提交您的更改:

git add .
git commit -m "Your commit message"

这个命令对我很有效

git push -f origin master

我的遥控器与本地不同步,所以这对我来说很有效

git pull--重新设置基址

并且确保当您再次执行
git pull
时,它应该说已经是最新的 现在你已经准备好推到原点了

假设您已经
git-remote-add-origin远程存储库URL

截图说明了一切

或者你也可以这样做
  • git隐藏(临时存储未限制的工作)
  • git pull(使本地和远程同步)
  • git stash pop(返回未限制的更改)
  • git推送

  • 如果有人在尝试推送heroku时出现此错误,则
    git push origin master
    
    $ git fetch && git checkout master
    $ git pull
    $ git fetch && git checkout develop
    $ git push
    
    git push -f origin master
    
    git add .
    git commit -m "Your commit message"
    
    git push -f origin master
    
    `git push origin master`  
    
    git push -f origin master
    
    cd 'Local Directory Path'
    git remote add origin *your_git_name.git*
    git push -u origin master
    
    git remote set-url origin *your_git_name.git*