Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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非快进更新被拒绝合并远程更改_Git_Github - Fatal编程技术网

Git非快进更新被拒绝合并远程更改

Git非快进更新被拒绝合并远程更改,git,github,Git,Github,我如何解决这个问题?我试图提交,但我得到以下错误 git推送源monty_svm_dev To git@github.com: ! [rejected] monty_svm_dev -> monty_svm_dev (non-fast-forward) error: failed to push some refs to 'git@github.com:/mygit.git' To prevent you from losing history, non-fast-forw

我如何解决这个问题?我试图提交,但我得到以下错误

git推送源monty_svm_dev

To git@github.com:  ! [rejected]        monty_svm_dev -> monty_svm_dev
(non-fast-forward) error: failed to push some refs to
'git@github.com:/mygit.git' To prevent you from losing history,
non-fast-forward updates were rejected Merge the remote changes before
pushing again.  See the 'Note about fast-forwards' section of 'git
push --help' for details. root@li409-202:~/mypath#

首先执行git pull origin monty\u svm\u dev

发生的情况是,远程服务器的更改比您的分支的更改要多

因此,在
推送更改之前,您需要先在远程设备上获取并合并更改

您可以通过执行git签出您的分支机构来执行此操作,然后:

git从您的分支获取来源
,然后是a
git合并您的分支机构

您的分支机构是主分支机构,或者您的分支机构名称(在您的情况下,我想应该是
monty\u svm\u dev


一旦完成了这项工作(并且解决了所有冲突),您就可以执行git push origin monty_svm_dev

这基本上是因为

吉特拉力

从一个分支执行两个操作:获取和合并。现在,如果您的本地服务器有一些更改,那么git将不允许您在提交更改之前推送它


此外,如果远程设备的更改仍然没有拉入本地和合并,则会出现此问题,因此需要再次拉入,然后推送。如果无法解决问题,一定要回复

进行Git拉动。然后,它将把远程分支中最近的代码更改带到本地。然后您就可以推送更改。

当用户在
git commit
命令之后忘记发出
git push
命令时,就会出现此问题。在使用git时,请始终确保基本步骤

在使用git的理想周期中,始终检查以下git命令是否按以下顺序依次使用:

我个人避免在堆栈上发布大多数关于git的问题,因为我总是将我的git命令活动记录到上面的序列中

我创建了一个首字母缩略词,以确保我不会忘记,我希望它对读者有用,即:

pacp(读作:packpush-where(p=git-push,a=git-add,ck=git-commit,push=git-push)

我记忆git push、add、commit和pull的方法是:

获取包推送(意思是:git包,然后推送)

总之,记住先“git”包,然后“推”

解决问题: 我想添加我最常用的recovery git命令,它们是:

git checkout -- path/to/file/fileName.something #undo changes in file
上述操作将撤消文件中的更改…类似操作可应用于多个文件,使用*作为文件名,类似操作可应用于多个文件 用空格分隔的目录

上面从stage中删除文件…在执行此命令后,我们可以 安全地执行git提交,git将只提交我们所处的文件 阶段,这意味着文件“filname.txt”不会提交)

更改与来自您的分支的最新更改合并这基本上合并了您提交但未推动的更改。一切顺利后,只需进行推送:

git push 

或者OP可能重新设置了他们的分支的基础。我听说pull很糟糕,因为它会以一种你通常不希望的方式合并。就个人而言,我喜欢让我的历史保持线性。当我遇到与询问者相同的错误时,我如何做到这一点?我尝试了#git pull origin devops_branch_22112016获取错误:您对以下文件的本地更改将被merge覆盖:www/index.html请在合并之前提交更改或将其隐藏。堕胎也尝试过jenkins@ip-172-31-22-20:~/workspace/directory react nodejs$git从github.com获取来源devops\u branch\u 22112016:HSarode computematrice/directory react nodejs*branch devops\u branch\u 22112016->fetch\u HEADjenkins@ip-172-31-22-20:~/workspace/directory react nodejs$git merge devops\u branch\u 22112016最新的jenkins@ip-172-31-22-20:~/workspace/directory-react-nodejs$仍由用户Ashish Karpe在workspace/var/lib/jenkins/workspace/directory-react-nodejs>git-rev-parse中构建启动,位于工作树内#timeout=10从远程git存储库获取更改>git-config remote.origin.urlgit@github.com:HSarode computematrice/directory-react-nodejs.git#timeout=10从中获取上游更改git@github.com:HSarode computematrice/directory-react-nodejs.git>git--version#timeout=10使用git#u ASKPASS设置证书此答案已经给出,并且更详细()。如果你想扩展你的答案,提供一些别人不愿意提供的东西。
git checkout -- path/to/file/fileName.something #undo changes in file
git reset filename.txt 
git pull origin your_intended_branch
git push