Gitのrmについての勘違いと自身の思い込みの話
ちょっと個人的にやべーなと思った話。
Twitterで、とある人が以下のような話をしていた
「$ git rm 」がいまいちよくわからない。どんな時使うの?コミットして、リモートにあげる時は「add .」「commit -m」「push 」でいいじゃん。なんで必要なんだろ…いつ使うんだろ…。
— YURAYURA (@SwiSwiSwiSwiSw1) 2020年7月23日
で、私自身業務でGit使ってて、それなりに理解している自身があったので、こう返した
私の理解が正しければ、Git上で管理されたファイルを消す方法は、git rmのみとなります
— syachi@ (@CtfFor) 2020年7月23日
何かファイルの中身をいじったりした場合は、変更するファイル候補をgit addして、その後変更をcommitします
消すという変更の場合はaddでは受け付けてくれません
その後、同じ方からこのようにかえってきて
①「rm 〇〇」->「git add 〇〇」-> 「git commit」
— YURAYURA (@SwiSwiSwiSwiSw1) 2020年7月24日
②「git rm 〇〇」->「git commit」
①と②違いなのですが、どちらもGit上からファイルを削除できるのではないでしょうか?① の削除の仕方はGit上に空のファイルとして残り続けてしまうということでしょうか?重ね重ねすみません...。
自身の脳内で会議が巻き起こる
あれ?rmしてもaddできるの?rmじゃないの?
というかそもそもちゃんと調べたことなかったような・・・・
ということで、実際に以下の手順で動きを試してみた
動きの確認
・ローカルでrmした後、git addするとどうなるか(質問されていた動作その1)
・ローカルrmした後、git rmするとどうなるか(自身がよくやっていた動き)
・直接git rmするとどうなるか(質問されていた動作その2)
結論としては、git上の削除は以下2つ
・ローカルでrmしてから、git addする
・直接git rmする
!!!!!!!!!
私自身がこれが正しいと信じて疑わなかったやり方間違ってるやんけ!!!!!!!!!!!!!!!!
そう、そうなのだった
部署内で適当に教わったコマンドを調べもせずに自分のものとして今日まで使用し、
あげく人に教えようとして逆に教えてもらったこの状況・・・。
まずい・・・
ということで、以下のように返信したものの、
今のままのやり方で進んではいけないなぁとつくづく感じたのだった
申し訳ありません!私の理解不足でした!
— syachi@ (@CtfFor) 2020年7月24日
なんか混乱してきたので実際に打ってみたのですが、上の結果はどちらも同じでファイル削除になりました
むしろ私が知らなかったのですが、ローカルファイルをrmしたあとはその変更をaddするところを、ワンステップで実行できるのがrmなのだそうです
人から教えてもらえるものは100%正確、というわけではない
だから、教えてもらったことに感謝しつつ、自身でも裏トリをすべきである
だって最終的にそのコマンド打つのは自分なのだから
今回の内容については、自身は業務上でもなんでも冗長な打ち方をしていたというだけで済んだが、
これが取り返しのつかない系の間違いだったら目も当てれない
なので、慎重になれ自分
これをちゃんと生かして・・・いくんや・・・
でもここまで含めて声かけられたのはよかったかなって思うんや。
以上