ロイの奮闘記録

PdMをやってるロイの日記です。人のつながりを増やしたいと思いながら、社会と奮闘しています

#44 8/1~4 Gitエラーで詰まった話 2回目

11章の途中で、Git関連の大ハマリを経験したので記します。

起こったこと→途中の苦悩、解決策の流れ で書いていきます。

 

■起こったこと

1.11章途中でrails tの普通エラー

2.並行してrails tが出来なくなるエラー(spring stop)

3.git reset で巻き戻し

4.10,11章打ち直し

5.git mergeによる競合

6.git pushの権限なし

 

上記で、だいたい7時間くらいはやられました。

(無事復帰出来た気がするので、これも良しと捉えるしかないのでしょう。)

 

■苦悩と解決策について

1.普通のディレクトリエラー

Expected /Michael\ Example/ to match "User#account_activati on\n\n, find me in app/views/user_mailer/account_activation.text.er b\n\n". test/mailers/user_mailer_test.rb:12:in `block in <class:Use rMailerTest>'  

ser_mailer/account_activation.text.erb を何故か、views/account_activations フォルダの直下においていた (user_mailerの中じゃなく、他のファイルを参照していた)

 

2.並行してrails tが出来なくなるエラー(spring stop)

Circular dependency detected while autoloading constant AccountActivationsHelper (RuntimeError)  

seed.dbが2個あることを発見。

 

何故かsample_appの中にsample_appが存在した。。

それ削除したらtest出来た。

 

 

 

3.git resetで巻き戻し

2のエラーが原因不明すぎたので、gitで一つ前のところまで全部戻ろうかなと。

$ git reset --soft HEAD^

でresetして、

git reflog // で作業ログを確認する

git reset --hard HEAD@{1} // たいてい1つ前

したが、迷宮入り。

 

git resetしたので、内容は10章までの内容だが、

何故かaccount_activationなどのファイルは残っている。

git reset,git cloneの仕組みを正式に理解。

どのような戻し方、resetの仕方になっているのか。

 

 

git reset 自体で戻れることは戻れるが、

新たに作成したファイルなどはそのまま残り続ける。?

 

https://qiita.com/fnobi/items/ec036c1b5d7ee5a8517c 

 

 

4.打ち直し

10.11を一つ一つコピペすることで、

コード自体は解決。

  

5.git mergeのコンフリクト

プログラミングが競合しており,merge中になるらしい。

sample_app(master|MERGING)という表記。

 

error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

 

・片方の状態のみを残す方法があるらしい。

自分のコードを優先したい場合
git checkout -ours .

マージした側のコードを優先したい場合
git checkout -theirs 

 

今回はtheirsと思ったが、これでは解決せず。

 

git status でmerge出来ない箇所を調べ、

一つ一つ解消することに。

(※該当箇所がマークされており、ボタン押すだけで修正可能)

 

6.権限がなく、git push 出来ない

 

error: RPC failed; HTTP 401 curl 22 The requested URL returned error: 401

というエラー文

 

ggってたら英語サイトで、権限がないよ的なコメントが。

公開鍵を作成し直して、解決。

#33参照

http://tusukuru.hatenablog.com/entry/2018/08/29/021651

(このサイトのようにやれば出来る。vimにビビらない。)

 

---

Rails初めてから、初めての大きなエラーでやや挫けそうになりましたが、

”英語のエラー文を読む抵抗感が減った”

”gitへの知識不足を認識できた”ことが大きな学びです。

 

RailsTutorialあと3章 駆け抜けて、

早いところマッチングサービス作ります!