2017-03-03 117 views
2

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

+1

提交 - 把你的改变遥控器。 'git commit -am'消息','git push origin HEAD'。你有什么错误吗? –

+0

推送到您的分支使用“git push origin

回答

1

既然你工作的分支上的远程版本是领先的本地版本,你首先

  • 要拉的变化, git pull origin yourBranch
    • 作为一个警告,你可能有在这一点上有一些冲突,如果是这样,你需要解决它们,然后做一个提交,否则你会提交冲突的文件。当你做pull你会得到一个警告,或者通过做git status
  • 承诺在它的上面更改自己检查, git commit -am "msg"
  • ,最后推到原点; git push origin yourBranch

另外,请确保您的当前分支(HEAD)是yourBranch,否则你可能会修改其他分支,通过git branch检查,并确认是您的分支是活动之一。

只要远程yourBranch还没有被人拉master分支,你应该能够独立于masteryourBranch

+0

其实,它是远程'主'已转发,我的远程分支仍然是我的本地分支。 –

+0

这不会影响你的分支,但你可以独立于你的工作主分支,当你推动你的分支远程 –

0

工作,我认为你正在使用git push把你的代码。这会导致git推送所有分支,包括远程版本后面的主分支。只推动你的开发分支使用git push origin <branch name>或只是git push origin HEAD这将推动你当前的分支。

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

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