プログラミング初心者の勉強メモ。

あくまでメモなので、自分が忘れそうなことだけちょこちょこ書いてます。

git cloneで作成したものがpushできない

この記事はまだ調査途中です。

pushが出来ない!

gitのcloneで作成したものを$ git push origin master で pushしようとしたけど、上手く行かずリジェクト(拒否)されてしまった。エラー表示の概要は以下通り。

① ! [rejected] master -> master (non-fast-forward)

([拒否]マスター -> マスター(非早送り)
② error: failed to push some refs to 'https://github.com/...'

(エラー:一部の参照を)'https://...'にプッシュできませんでした)

③ hint: Updates were rejected because the tip of your current branch is behind

(ヒント:現在のブランチの先端が遅れているため、更新は拒否されました)
④ hint: its remote counterpart. Integrate the remote changes 

(ヒント:そのリモートの対応物。リモートの変更を統合します)

⑤ hint:(e.g. 'git pull ...') before pushing again.

((例:ヒント: 'git pull ...')を再度押す前に。)
⑥hint: See the 'Note about fast-forwards' in 'git push --help' for details.

(ヒント:詳細については、「git push --help」の「早送りに関する注意」を参照してください。)

という事で、この原因解説の用語の意味が全体的に意味不なので、1つずつ調べることに。

原因コメントを理解する

まず1行目。赤字の部分をまず調べてみることに。

① ! [rejected] master -> master (non-fast-forward)

( [拒否]マスター -> マスター(非早送り) )

non-fast-forwardを調べると以下の説明が。

help.github.com

説明の概要としては、「Gitはリモートリポジトリへの変更($ git remote set-url [新たなurl]を使ってリモートのURLを変更すること)の際、コミットに失敗することがあり、プッシュも拒否される」ということが書いてあります。

僕は正にこの(リモートリポジトリの変更をした)状態でした。そして、修正策として、以下の方法があるようです。

これを修正するには、リモートブランチで行った変更をフェッチ して、ローカルで行った変更マージします。

引用:GitHub

フェッチ・マージ解説(下へスクロールするとあります)

git pull - Gitコマンド | WWWクリエイターズ