Git OnlineでGITリポジトリを編集しました。ローカルコードの変更をプッシュしようとすると、エラーが発生しました。
Git Push failed, To prevent from losing history, non-fast forward updates were rejected.
どうすれば修正できますか?
最初に変更をプルします。
git pull Origin branch_name
プッシュすることが確実な場合は、コマンドラインに--forceを追加します。例えば。 git Push Origin --force
を使用します(コマンドラインを使用すると、他のユーザーからより多くのサポートが得られるため、コマンドラインをお勧めします。SmartGitではこれが不可能な場合もあります。)詳細については、このサイトを参照してください: http: //help.github.com/remotes/
プッシュする前に、rebaseオプションを使用してgit pullを実行します。これにより、Originでオンラインで行った変更を取得してローカルに適用し、その上にローカルの変更を追加します。
git pull --rebase
これで、リモートにプッシュできます
git Push
詳細については、 Gitリベースの説明 および 第3.6章Gitの分岐-リベース を参照してください。
同じエラーが発生しました。コマンドに"-force"を追加するだけで機能します
git Push Origin master --force
コマンドに-force-with-leaseを追加できます。動作します。
git Push --force-with-lease
-forceは、ローカルにあるものでリモートリポジトリを無条件に上書きするため、破壊的です。ただし、-force-with-leaseは、他の作業を上書きしないようにします。
詳細情報を参照してください こちら 。
私も同じ問題を抱えています。
。
後
git branch branch_name --set-upstream-to=Origin/branch_name
git pull
マージする競合を解決して、プッシュすることができました。
(1)Netbeans 7.1のソリューション:プルしてみてください。これもおそらく失敗します。次に、ログを確認します(通常はIDEに表示されます)。次のような1行以上の行があります。
「このファイルが原因でプルに失敗しました:」
そのファイルを検索し、削除します(前にバックアップを作成します)。通常、これは.gitignoreファイルなので、コードを削除しません。プッシュをやり直します。これですべて正常に動作するはずです。
これは私のために働いたものです。 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
時々、gitからプルを取得しているときに、HEADが切り離されます。次のコマンドを入力して、これを確認できます。
git branch
(8790704から切り離されたヘッド)
主人
開発する
ブランチに移動して、それぞれのブランチから新たにプルすることをお勧めします。
git checkout develop
git pull Origin develop
git Push Origin develop
同じ問題が発生したため、それを解決するには、次のgit
コマンドを実行します。
git pull {url} --rebase
git Push --set-upstream {url} master
最初にgithubにリポジトリを作成しておく必要があります。
私も同じ問題を抱えています。で解決しました
git checkout <name branch>
git pull Origin <name branch>
git Push Origin <name branch>