GitHubには、「「早送りでない」エラーへの対処」という素晴らしいセクションがあります。
このエラーは、最初は少し圧倒される可能性があります。心配しないでください。
簡単に言うと、gitはコミットを失うことなくリモートで変更を行うことができないため、プッシュを拒否します。
通常、これは別のユーザーが同じブランチにプッシュしたことが原因です。これを解決するには、リモートブランチをフェッチしてマージするか、プルを使用して両方を一度に実行します。
他の場合には、このエラーは次のようにコマンドを使用して局所的に作られた破壊的変更の結果ですgit commit --amend
か、git rebase
。コマンドに
追加--force
することでリモートをオーバーライドできますが、push
これがあなたがしたいことであることが確実である場合にのみ行うべきです。
強制プッシュは、リモートブランチをフェッチした他のユーザーに問題を引き起こす可能性があり、悪い習慣と見なされています。疑問がある場合は、無理に押し込まないでください。
Gitは、Visual Gitリファレンスで次のように示されている早送りマージのように、リモートで変更を加えることはできません。

これは厳密にはあなたのケースではありませんが、「早送り」が何であるかを確認するのに役立ちます(HEAD
ブランチのが新しいコミットに移動されるだけです)。
「branch master->master (non-fast-forward) Already-up-to-date
」は、通常、リモートの相手を追跡しないローカルのブランチ用です。
たとえば、このSOの質問「git pullは最新であるが、git pushは非早送りを拒否する」を参照してください。
または、2つのブランチは接続されていますが、それぞれの履歴に同意していません。
「終わりのないGITストーリー-ここで何が間違っているのですか?」
これは、subversionブランチとリモートgit masterブランチが何かについて合意していないことを意味します。
ある変更が他の変更ではないものにプッシュ/コミットされました。
起動するとgitk --all
、何が問題だったかについての手掛かりが得られるはずです。履歴で「フォーク」を探してください。