web-dev-qa-db-ja.com

Gitプッシュが失敗しました、「非早送りの更新は拒否されました」

Git OnlineでGITリポジトリを編集しました。ローカルコードの変更をプッシュしようとすると、エラーが発生しました。

Git Push failed, To prevent from losing history, non-fast forward updates were rejected.

どうすれば修正できますか?

96
Sarath

最初に変更をプルします。

git pull Origin branch_name
134
iafonov

プッシュすることが確実な場合は、コマンドラインに--forceを追加します。例えば。 git Push Origin --forceを使用します(コマンドラインを使用すると、他のユーザーからより多くのサポートが得られるため、コマンドラインをお勧めします。SmartGitではこれが不可能な場合もあります。)詳細については、このサイトを参照してください: http: //help.github.com/remotes/

83
Matt

プッシュする前に、rebaseオプションを使用してgit pullを実行します。これにより、Originでオンラインで行った変更を取得してローカルに適用し、その上にローカルの変更を追加します。

git pull --rebase

これで、リモートにプッシュできます

git Push 

詳細については、 Gitリベースの説明 および 第3.6章Gitの分岐-リベース を参照してください。

21
satishgoda

同じエラーが発生しました。コマンドに"-force"を追加するだけで機能します

git Push Origin master --force
13
Wen Qi

コマンドに-force-with-leaseを追加できます。動作します。

git Push --force-with-lease

-forceは、ローカルにあるものでリモートリポジトリを無条件に上書きするため、破壊的です。ただし、-force-with-leaseは、他の作業を上書きしないようにします。

詳細情報を参照してください こちら

4
igorjosesantos

私も同じ問題を抱えています。

git branch branch_name --set-upstream-to=Origin/branch_name
git pull

マージする競合を解決して、プッシュすることができました。

4
hardmooth

(1)Netbeans 7.1のソリューション:プルしてみてください。これもおそらく失敗します。次に、ログを確認します(通常はIDEに表示されます)。次のような1行以上の行があります。

「このファイルが原因でプルに失敗しました:」

そのファイルを検索し、削除します(前にバックアップを作成します)。通常、これは.gitignoreファイルなので、コードを削除しません。プッシュをやり直します。これですべて正常に動作するはずです。

1
Sliq

これは私のために働いたものです。 git documentationにあります here

目的のブランチにいる場合、これを行うことができます:

git fetch Origin
# Fetches updates made to an online repository
git merge Origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
0
CodeChops

時々、gitからプルを取得しているときに、HEADが切り離されます。次のコマンドを入力して、これを確認できます。

git branch 
  • (8790704から切り離されたヘッド)

    主人

    開発する

ブランチに移動して、それぞれのブランチから新たにプルすることをお勧めします。

git checkout develop

git pull Origin develop

git Push Origin develop
0
Abhinav

同じ問題が発生したため、それを解決するには、次のgitコマンドを実行します。

  • git pull {url} --rebase
  • git Push --set-upstream {url} master

最初にgithubにリポジトリを作成しておく必要があります。

0
blackFoxCoder

私も同じ問題を抱えています。で解決しました

git checkout <name branch>
git pull Origin <name branch>
git Push Origin <name branch>
0