人々が同様の質問をしたことは知っていますが、問題の原因は異なると思います。かなり悪いコードを台無しにしてしまったので、ハードリセットしました
git reset --hard 41651df8fc9
私はかなりの変更を行い、いくつかのコミットを行いましたが、これらすべてのコミットをサーバーにプッシュしようとしていますが、次のエラーが発生します:
! [rejected] master -> master (non-fast-forward)
error: failed to Push some refs to '[email protected]'
Gitはgit pullを行うことを提案します。これは他の人が他のユーザーに提案したことです。ただし、git pullを使用すると、現在のコードと不要なコード(ヘッドリビジョン)がマージされると考えています。プッシュを実行して、前のバージョン/リビジョンを忘れるにはどうすればよいですか?
git Push -f
許可があれば、それはそのリポジトリからプルする他の人を台無しにしますので、注意してください。
これが拒否され、サーバーにアクセスできる場合は、canzarが以下で述べているように、サーバーでこれを許可できます。
git config receive.denyNonFastForwards false
あなたがプロジェクトに取り組んでいる唯一の人である場合、あなたにできることは:
git checkout master
git Push Origin +HEAD
これにより、Origin/masterの先端がmasterと同じコミットに設定されます(したがって41651dfとOrigin/masterの間のコミットを削除します)
ただやる
git pull Origin [branch]
そして、あなたはプッシュすることができるはずです。
自分でコミットしていて、まだブランチにプッシュしていない場合は、試してください
git pull --rebase Origin [branch]
そして、あなたはプッシュすることができるはずです。
「リモート:エラー:非早送りrefs/heads/masterを拒否します(最初にプルする必要があります)」
そのメッセージは、早送りを拒否するフックがサーバーにあることを示唆しています。はい、通常は推奨されておらず、適切なガードですが、あなたがそれを使用している唯一の人であり、プッシュを強制的に実行したいので、リポジトリの管理者に連絡して、一時的なフックするか、フックで許可を与えます。
問題を解決するために私がしたことは:
git pull Origin [branch]
git Push Origin [branch]
また、次のコマンドを実行して、正しいブランチを指していることを確認してください。
git remote set-url Origin [url]
私のために働いて、これらのコマンドを1つずつ実行しただけです
git pull -r Originマスター
git Push -f Origin your_branch
この問題を解決するために、次の手順を実行しました。私にエラーを与えていたブランチ:
git pull Origin [branch-name]<current branch>