with - git:更新被拒絕,因為遙控器包含您本地沒有的工作




git rebase (6)

我正在與一些開發人員合作,在BitBucket上使用git。 我們都在開發一個dev分支,直到發布才推動master

其中一個開發人員提交了錯誤的代碼,意外地覆蓋了我自己的代碼,現在我正在嘗試將正確的代碼推回到repo。 我已經閱讀了這個錯誤幾天了,我不能再推送回購,因為我收到以下錯誤:

 ! [rejected]        master -> dev (fetch first)
error: failed to push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我按照說pull ,然後我收到合併衝突。 輸入合併衝突的消息後,我的本地代碼現在是其他開發人員意外上傳的錯誤代碼(正如預期的那樣)。 所以我用我在提交之前複製的備份替換了錯誤的代碼,當我再次嘗試推送時,我得到了同樣的錯誤。

這真的令人沮喪,我真的想幫助我的團隊並做出貢獻,但我不能因為這個錯誤。 有誰知道如何解決這個問題? 我非常感謝任何幫助。

這些是我為了提交而運行的命令,如果它可以幫助任何人:

git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev

我原以為如果我遵守這個命令,我就不會收到合併衝突。 我想我錯了。 再次感謝

更新:我應該補充一點,我已經在Google和stackoverflow上查了幾個小時,並遵循不同的指示,但我仍然無法push送到dev分支。


git pull <remote> master:dev將獲取remote/master分支並將其合併到local/dev分支中。

git pull <remote> dev將獲取remote/dev分支,並將其合併到當前分支中。

我想你說衝突提交是在remote/dev ,所以這是你可能想要獲取和合併的分支。

在這種情況下,您實際上並沒有將衝突合併到您的本地分支中,這有點奇怪,因為您說您在工作副本中看到了錯誤的代碼。 您可能想要檢查remote/master發生了什麼。


你需要輸入:

$ git pull
$ git fetch 
$ git merge

如果你使用git push origin master --force ,你將遇到一個大問題。


在termial中使用此命令

git push -f origin master


它發生在我們試圖推送到遠程存儲庫但是在遠程創建了一個尚未被拉動的新文件時,就像Readme 。 在那種情況下,錯誤說

git拒絕更新

因為我們沒有在當地環境中使用更新的遙控器。 所以先從遙控器拉出來

git pull

它將更新您的本地存儲庫並添加新的Readme文件。 然後將更新的更改推送到遠程

git push origin master

我有這個錯誤,這是因為服務器上有更新,但SourceTree沒有顯示任何可用的更新(可能是因為我上次檢查時離線)。 所以我在源代碼樹中進行了刷新,現在它顯示了2個項目而不是1個項目。

因此,如果出現此錯誤,請務必按刷新拉動 ,然後再試一次。


當repo包含一些本地不存在的項時,通常會發生這種情況。 因此,為了推動我們的更改,在這種情況下,我們需要集成遠程更改然後推送。

所以從遠程創建一個拉動

git pull origin master

然後將更改推送到該遙控器

git push origin master




bitbucket