无法将更改推送到git中的远程分支

时间:2017-03-03 05:56:50

标签: git

作为开发过程的一部分,我创建了一个本地分支,然后开始更改代码并提交文件。当我第一次推送更改时,会在远程站点上创建一个新分支。下次我对本地分支中的代码进行更改时,我想将这些更改推送到远程分支。这里的问题是,在推送本地更改之前,master已经向前推进了一些提交,当我尝试执行推送时,我收到一条消息,指出远程分支在master之后,推送被拒绝。我该怎么做?

3 个答案:

答案 0 :(得分:1)

由于您正在处理的分支的远程版本优先于您的本地版本,因此您首先

  • 必须拉动变化, git pull origin yourBranch
    • 作为警告,此时您可能会遇到一些冲突,如果是这样,您需要解决它们,然后执行提交,否则您将提交冲突的文件。当您执行pull时会收到警告,或者通过git status
    • 自行检查
  • 在其上提交您的更改, git commit -am "msg"
  • 最后推到原点; git push origin yourBranch

此外,请确保您当前的分支(HEAD)为yourBranch,否则您可能会修改其他分支,请git branch进行检查,并确认您的分支是活动分支。

只要远程yourBranch未被某人提起master分支,您就可以独立于master

中的yourBranch工作

答案 1 :(得分:0)

我认为您正在使用git push来推送您的代码。这会导致git推送所有分支,包括远程版本后面的主分支。要仅推送您的开发分支,请使用git push origin <branch name>git push origin HEAD来推送您当前的分支。

注意:我假设您的遥控器被称为“原点”。

答案 2 :(得分:0)

运行git stash将本地更改保存到堆栈。

git stash
git checkout master
git stash pop  /*or git apply (pop removes stash)*/

合并您的更改并再次提交:

git commit -am "msg"
git push origin master