Git Remoteでのプッシュ/プル時の非高速前方エラー


質問する


リモート設定とプッシュでエラーが発生する可能性があります.
以下のとおりです.
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/huusz/test.git'
プッシュを拒否する.local masterからリモートmasterブランチにマッピングしたいのですが、
non-fast-forward:これは、プライマリ・ブランチがローカル・リポジトリの古いバージョンではないことを意味します.

解決する


これは、Git pullを使用してファイルをローカルでインポートした後、リモート・リポジトリでさらにコミットが行われ、ローカルにコミット・ログがないためです.すなわち、git pushを使用するには、git pushを使用するには、リモート・リポジトリがローカル・リポジトリよりも常に高いバージョンである必要があります.(よく考えると論理的には正しい)
pushコマンドは、ローカルストレージコミットリストとリモートコミットリストを比較します.
その後、リモート・リポジトリで最後のcommit idとローカルの最後のcommit idを見つけ、接続します.ここでリモートで最後のcommit idが見つからないため、上記のエラーが発生しました.
解決策
  • リモートストレージを削除すると、
  • が再作成されます.
  • fetchまたはpullコマンドを使用して、リモート・リポジトリの最後のコミットをローカル・リポジトリのコミット・ログの一番前に配置します.
  • Git pullオリジナルMaster Sierrorはやめて
    git pull origin master
  • - fatal: refusing to merge unrelated histories
  • エラー内容は、リモートストレージマスターブランチでのローカルストレージFETCH HEADのマージを拒否します.
    commit historyは関係なく、マージできません.
    pullはfetch+merge操作です.現在の状況が取得されました.マージされていません.
    デフォルトでは、mergeにはリモートストレージとローカルストレージの共通のコミットポイントが必要です.その点から合併するからです.
    pullコマンドにオプションを追加してpullを強制
    2つ目の方法を選択してpullコマンドにオプションを指定すると、この問題を簡単に解決できます.
    git pull origin (branchname) --allow-unrelated-histories
    git push、pull(致命的:関連のない履歴のマージを拒否)エラー