補足
学んだ知識のほとんどは,Qiitaではなくこちらにバーッとまとめております.
今回のエラー
コミットメッセージを修正したので、
$ git commit --amend -m "add #0 xxxさんのREADMEを追加"
[master 41cc21b] add #0 xxxさんのREADMEを追加
Date: Wed Mar 20 20:54:34 2019 +0900
1 file changed, 193 insertions(+)
create mode 100644 README.md
push
したら、 ! [rejected] master -> master (non-fast-forward)
が表示されてしまう。
$ git push
To github.com:Hiroki-IT/Symfony2_Nyumon.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:Hiroki-IT/Symfony2_Nyumon.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因
ローカルでは、コメント変更前のブランチから変更後ブランチが作られてnon fast-forward
型となっており、それをpush
しようとしたためエラーになったみたい。
引用元:アジャイルSEを目指すブログ,http://d.hatena.ne.jp/sinsoku/20111025/1319497900
引用元:NullNote,https://nullnote.com/web/git/merge_rebase/
解決法
ローカルのコメント変更前ブランチと変更後ブランチをmerge
する。
##(1)履歴の異なるブランチをmerge
引数として、--allow-unrelated-histories
をつけることで、履歴の異なるブランチ同士をマージさせることが可能。
今回は、ローカルのコメント変更前ブランチと変更後ブランチをmerge
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
※補足
--allow-unrelated-histories
をつけないと、無関係の履歴をmerge
することはできないと表示される。
$ git merge
fatal: refusing to merge unrelated histories
##(2)push
を実行
$ git push
Enumerating objects: 2, done.
Counting objects: 100% (2/2), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 333 bytes | 111.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To github.com:Hiroki-IT/Symfony2_Nyumon.git
f81c813..f17f68e master -> master
//成功