1. ホーム
  2. Web プログラミング
  3. その他全般

[解決済み】git error: failed to push some refs to remote

2021-12-28 16:47:08

質問

git push origin master を使ってコードをリモートにプッシュしたところ、エラーが発生しました。

git error: failed to push some refs to remote

<イグ

私の作業ディレクトリとリモートリポジトリは次のようになります。

解決方法は?

(注 2020年10月より の場合、新しいリポジトリはすべてデフォルトのブランチで作成されます。 main ではなく master . そして、あなたは 既存のリポジトリのデフォルトブランチの名前を master から main .
この2014年の回答の残りは、"を使用するように更新されました。 main ")

(以下は github.com は、それ自体が ではなく として、ダウン eri0o で指摘しています。 コメント : 参照 www.githubstatus.com をご覧ください)

ローカルで作業している間に、GitHub リポジトリに新しいコミットがプッシュされていた場合は、この方法を使うことをお勧めします。

git pull --rebase
git push

完全な構文は

git pull --rebase origin main
git push origin main

Git 2.6+ を使用する場合 (2015年9月)を行った後、(1回だけ)

git config --global pull.rebase true
git config --global rebase.autoStash true

シンプルな git pull があれば十分です。
(注) Git 2.27 Q2 2020 , a merge.autostash は、リベースせずに通常のプルでも利用可能です)

そうすると、リプレイ( --rebase の部分) にローカルでコミットした内容を、新しく更新された origin/main (または origin/yourBranch : git pull origin yourBranch ).

より完全な例は 第6章 rebaseで引っ張る Gitポケットブック .

をお勧めします。

# add and commit first
git push -u origin main

そうすると、ローカルのメインブランチとその上流ブランチの間にトラッキング関係が確立されます。
その後、そのブランチに対する将来のプッシュは、シンプルに行うことができます。

git push

"をご覧ください。 なぜ明示的に新しいブランチをプッシュする必要があるのですか? "。


OPはすでに をリセットしてコミットをやり直しました。 の上に origin/main :

git reset --mixed origin/main
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin main

は必要ありません。 pull --rebase .

git reset --mixed origin/main は、次のように書くこともできます。 git reset origin/main というのは --mixed を使用する場合、オプションはデフォルトのものです。 git reset .