2017-03-03 149 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