簡體   English   中英

被拒絕的主人 - >主人(非快進)

[英]rejected master -> master (non-fast-forward)

我正在嘗試推送我的項目(新存儲庫中的所有文件)。 我按照這些步驟操作,但是當我使用git push -u origin master推送時,出現此錯誤:

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

我多次遇到此錯誤,不知道該怎么辦。

注意:這絕不是 git 的推薦用法。 這將覆蓋遙控器上的更改。 僅當您 100% 知道您的本地更改應該推送到遠程主服務器時才這樣做。

⚠️ 試試這個: git push -f origin master

正如錯誤消息所說: git pull before you try to git push 顯然,您的本地分支與您的跟蹤分支不同步。

根據項目規則和您的工作流程,您可能還想使用git pull --rebase

這個命令對我很有效

git push -f origin master
git push -f origin master

使用蠻力 ;-) 很可能您正在嘗試添加在 git 上創建 repo 之前創建的本地文件夾。

我剛剛收到此錯誤。

我在創建本地 git 存儲庫后創建了一個 github 存儲庫,因此我需要在推送到 github 之前接受對本地的更改。 在這種情況下,唯一的變化是創建 github 存儲庫時作為可選步驟創建的自述文件。

git pull https://github.com/*username*/*repository*.git master

存儲庫 URL 來自項目 github 頁面上的這里:

在此處輸入圖片說明

然后我重新初始化(這可能不需要)

git init
git add .
git commit -m "update"

然后推:

git push

如果git pull沒有幫助,那么您可能已經推送了更改(A),然后使用git commit --amend添加了更多更改(B)。 因此,git 認為您可能會丟失歷史記錄 - 盡管它包含來自 A 的所有更改,但它將 B 解釋為不同的提交。

             B
            /
        ---X---A

如果在A之后沒有人更改 repo,那么您可以執行git push --force

但是,如果其他人在A之后發生了變化:

             B
            /
        ---X---A---C

那么你必須重新確定人從AB ( C -> D ) 的變化。

             B---D
            /
        ---X---A---C

或手動修復問題。 我還沒想好怎么做。

我在 github 中創建了新的 repo 並且我遇到了同樣的問題,但是在拉動時它也有問題,所以這對我有用。

但是在已經有很多代碼的回購中不建議這樣做,因為這可能會弄亂一切

git push origin master --force

警告:

尋求“ git pull ”並不總是解決方案,所以要小心。 如果您有意更改了存儲庫歷史記錄,您可能會遇到這個問題(Q 中提到的那個)。 在這種情況下,git 會將您的歷史更改與遠程存儲庫中的新更改混淆。 因此,您應該使用git push --force ,因為調用git pull會有意撤消您對歷史記錄所做的所有更改。

使用這個命令:

git pull --allow-unrelated-histories <nick name of repository> <branch name>

喜歡:

git pull --allow-unrelated-histories origin master

當項目沒有任何共同的祖先時會發生此錯誤。

這是因為您在 master 中做了一些更改,因此項目要求您先拉取。 如果您無論如何都想推動它,您可以通過鍵入以下內容使用蠻力:

git push -f origin master

請記住首先提交您的更改:

git add .
git commit -m "Your commit message"

試試這個命令:“git pull origin master”

它對我有用。

檢查此鏈接: https : //help.github.com/articles/dealing-with-non-fast-forward-errors

你需要做

git branch

如果輸出是這樣的:

* (no branch)
master

然后做

git checkout master

確保您沒有任何掛起的提交,因為簽出將丟失所有未提交的更改。

[拒絕] master -> master(非快進)

不要驚慌,這是非常容易修復的。 您所要做的就是發出拉動,您的分支將快進:

$ git pull myrepo master

然后重試你的推送,一切都應該沒問題:

$ git push github master

當我在開發分支並且我的主分支沒有最新更新時,這發生在我身上。

所以當我嘗試從開發分支 git push 時,我遇到了那個錯誤。

我通過切換到 master 分支,git pull 來修復它,然后返回到開發分支和 git push。

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git push

我在開發機器上遇到了這個問題。 dev分支推得很好,但master分支給了我(當在dev分支上時git push ):

! [rejected]        master -> master (non-fast-forward)

所以我試過:

git checkout master
git pull

這給了我:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.

我發現.git/config缺少 master 分支並添加了:

[branch "master"]
    remote = origin
    merge = refs/heads/master

之后git pushdev分支上也運行良好。

我的遙控器與本地不同步,所以這對我有用

git pull --rebase

並確保當你再次執行git pull時,它應該說已經是最新的,現在你已經准備好推送到原點了

假設你已經有git remote add origin remote repository URL

`git push origin master`  

截圖說明了一切在此處輸入圖片說明

或者你可以這樣做

  1. git stash(臨時存儲未提交的工作)
  2. git pull(使您的本地和遠程同步)
  3. git stash pop(取回未提交的更改)

我有同樣的問題。 我使用 Git Totoise。 只需右鍵單擊 -> TotoiseGit -> 清理。 現在你可以推送到 Github 它對我很好:D

這是因為您對其 master 進行了相互沖突的更改。 而你的存儲庫服務器無法用這些話告訴你,所以它會給出這個錯誤,因為他為你處理這些沖突不是他的事情,所以他要求你自己做。 作為 ?

1- git pull這會將您的代碼從您的存儲庫合並到您的站點主代碼。 所以顯示沖突。

2- 處理這些手冊沖突。

3-

git push origin master

而且很快,您的問題已經解決。

這也可能是由於在為 Repo 命名時導致的一些名稱錯誤造成的。 如果上述任何答案都不起作用。這對我有用:

刪除該存儲庫並創建一個新存儲庫,然后再次嘗試以下命令:

cd 'Local Directory Path'
git remote add origin *your_git_name.git*
git push -u origin master

如果添加原點顯示已經存在,請改用它:

git remote set-url origin *your_git_name.git*

我唯一能夠解決這個問題的是刪除本地和 git repo 並在兩端再次創建相同的。 目前工作正常。

如果有人在嘗試推送到 heroku 時遇到此錯誤,則只需將 'origin' 替換為 'heroku',如下所示: git push -f heroku master

試試這個,在我的情況下它有效

git rebase --abort

我也遇到了同樣的錯誤,但我通過獲取它的 URL 輕松解決了它

git fetch origin Your repository origin

然后簡單地應用命令

git push -f origin master

你會得到一個好的結果

這意味着您的遠程 git 存儲庫配置為denyNonFastforwards = true 盡管很危險,但有時您可能確實需要覆蓋 git 歷史記錄(例如,在運行bfg --strip-blobs-bigger-than 100M之后),因此您可以暫時將該設置修改為falsedenyNonFastforwards = true ,請在your-repository.git/config )然后強制推送(即git push -f )。

有時,Git 無法在不丟失提交的情況下對遠程存儲庫進行更改。簡而言之,這可能是因為您的提交丟失或者其他人試圖推送到與您相同的分支。 所以要解決這個問題,首先提出一個拉取請求

$ git pull origin YOUR_BRANCH_NAME

或者

$ git pull --rebase origin master

我首先解決了這個問題:

- 腳步 -

git 添加 *

git 獲取

git pull origin main --allow-unrelated-histories 或 git pull --rebase <your_reponame> <your_branch>

git push -u "" main 或 git pull origin [branch]

為我工作

git push --force origin master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM