1. ホーム

undefined! [rejected] マスター -> マスター (フェッチファースト) プッシュコードエラー

2022-02-08 18:53:15

コードを git にコミットしてプッシュすると、エラーが発生します: ! [rejected] master -> master (最初に取得)

理由: github上のログファイルを手動で修正し始めたが、リモートのコンテンツがローカルで更新されなかったため、ローカルのコードをリモートにアップロードすると、ローカルとリモートのバージョンが一致しないようになった

解決策

1. まずリモートのコードをローカルにプルします。プルを直接使うのではなく(ローカルコードがリモートで上書きされてしまうため)、フェッチ+マージを使います[プルとフェッチの違いは下部を参照してください]。

 a) コードをローカルに更新する  git fetch origin master

b) 取得したアップデートを表示する  git log -p FETCH_HEAD

 c)  ブランチのマージ git merge FETCH_HEAD

[直接プルした場合は   git pull <リモートホスト名> <リモートブランチ名>:<ローカルブランチ名> git]

2. リプッシュするだけ。

追記: もちろん、不機嫌なおっさんが強制的にプッシュしたい場合は、git push --force origin *~* これはあなたにとって良いことですが、あなたの同僚が殴られることになりますよ~。 

-----------------------------------------------------------------------------------------------

git fetchとgit pullの違い。

git fetch はリモートホストから最新のコンテンツをローカルに取得し、ユーザーはそれをチェックアウトして作業中のローカルブランチにマージするかどうかを決定します。

git pull  は、リモートホストから最新のコンテンツを引き出して直接マージする (同じファイルの内容をマージする)、つまり

git pull = git fetch + git merge.