web-dev-qa-db-ja.com

git Push rejected:error:いくつかの参照をプッシュできませんでした

人々が同様の質問をしたことは知っていますが、問題の原因は異なると思います。かなり悪いコードを台無しにしてしまったので、ハードリセットしました

 git reset --hard 41651df8fc9

私はかなりの変更を行い、いくつかのコミットを行いましたが、これらすべてのコミットをサーバーにプッシュしようとしていますが、次のエラーが発生します:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to Push some refs to '[email protected]'

Gitはgit pullを行うことを提案します。これは他の人が他のユーザーに提案したことです。ただし、git pullを使用すると、現在のコードと不要なコード(ヘッドリビジョン)がマージされると考えています。プッシュを実行して、前のバージョン/リビジョンを忘れるにはどうすればよいですか?

60
Eric

git Push -f許可があれば、それはそのリポジトリからプルする他の人を台無しにしますので、注意してください。

これが拒否され、サーバーにアクセスできる場合は、canzarが以下で述べているように、サーバーでこれを許可できます。

git config receive.denyNonFastForwards false
96
blueshift

あなたがプロジェクトに取り組んでいる唯一の人である場合、あなたにできることは:

 git checkout master
 git Push Origin +HEAD

これにより、Origin/masterの先端がmasterと同じコミットに設定されます(したがって41651dfとOrigin/masterの間のコミットを削除します

27
ouah

ただやる

git pull Origin [branch]

そして、あなたはプッシュすることができるはずです。

自分でコミットしていて、まだブランチにプッシュしていない場合は、試してください

git pull --rebase Origin [branch]

そして、あなたはプッシュすることができるはずです。

14
Robin Wieruch

「リモート:エラー:非早送りrefs/heads/masterを拒否します(最初にプルする必要があります)」

そのメッセージは、早送りを拒否するフックがサーバーにあることを示唆しています。はい、通常は推奨されておらず、適切なガードですが、あなたがそれを使用している唯一の人であり、プッシュを強制的に実行したいので、リポジトリの管理者に連絡して、一時的なフックするか、フックで許可を与えます。

4
manojlds

問題を解決するために私がしたことは:

git pull Origin [branch]
git Push Origin [branch]

また、次のコマンドを実行して、正しいブランチを指していることを確認してください。

git remote set-url Origin [url]
2
Pritam Banerjee

私のために働いて、これらのコマンドを1つずつ実行しただけです

git pull -r Originマスター

git Push -f Origin your_branch

1
Sultan Ali

この問題を解決するために、次の手順を実行しました。私にエラーを与えていたブランチ:

  1. git pull Origin [branch-name]<current branch>
  2. プルした後、いくつかのマージの問題を取得し、それらを解決し、変更を同じブランチにプッシュしました。
  3. プッシュされたブランチでプルリクエストを作成しました...多田、私の変更はすべて反映されていました。
0
Aniket J kamble