【学習メモ】※初心者向け　EC2へ誤ってgit cloneした時の対応

# 解決したいこと
EC2にrubyをインストールするため「rbenv」をgit cloneしてパスを通すはずだったが、「-bash: rbenv: コマンドが見つかりません」と怒られていました。

# 環境
- EC2インスタンス
- Amazon Linux2
- t2.micro
- Git：git version 2.23.3

# 原因
そもそも、git cloneするものを間違えていた。git cloneするものが、自分がデプロイするプロジェクトと勘違いしていました。

# 解決策
ディレクトリを削除し追加！ここからは私の思考過程をご覧ください。

```
[ec2-user@IPアドレス ~]$ ls
portfolio_development
#　これを消したい。
[ec2-user@IPアドレス ~]$  rm portfolio_development
rm: `portfolio_development' を削除できません: Is a directory
#　なぬ。

[ec2-user@IPアドレス ~]$ rm -rf portfolio_development/
#　ディレクトリごと消したい場合は、「-rf」なのね。

[ec2-user@IPアドレス ~]$ ls
#　消したことを確認。

[ec2-user@IPアドレス ~]$ git status 
# git statusでgit管理下にあるファイル・ディレクトリを確認したが、結構ファイル残ってるな。
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.bash_history
	.bash_logout
	.bash_profil
	.bash_profile
	.bashrc
	.cache/
	.rbenv/
	.ssh/
	.viminfo

nothing added to commit but untracked files present (use "git add" to track)
[ec2-user@IPアドレス ~]$ git clean -f
# 強制的に消去！
Removing .bash_history
Removing .bash_logout
Removing .bash_profil
Removing .bash_profile
Removing .bashrc
Removing .viminfo

[ec2-user@IPアドレス ~]$ git status
#　再度確認。しかしディレクトリが残っている。
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.cache/
	.rbenv/
	.ssh/

nothing added to commit but untracked files present (use "git add" to track)

[ec2-user@IPアドレス ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
fatal: destination path '/home/ec2-user/.rbenv' already exists and is not an empty directory.
#　当然空のディレクトリじゃないので怒られる。

[ec2-user@IPアドレス ~]$ git clean -df
Removing .cache/
Skipping repository .rbenv/
Removing .ssh/
[ec2-user@IPアドレス ~]$ git status
#　最後にこれが残っていたか、、、

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.rbenv/

nothing added to commit but untracked files present (use "git add" to track)

[ec2-user@IPアドレス ~]$ git clean .rbenv/
#　これで消せるか？

fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean
#　だめか。消したいなら強制的に消すコマンド使えよって。

[ec2-user@IPアドレス ~]$ git clean -f .rbenv/
Removing .rbenv/.DS_Store
Removing .rbenv/.browserslistrc
Removing .rbenv/.gitignore
Removing .rbenv/.ruby-version
Removing .rbenv/Gemfile
Removing .rbenv/Gemfile.lock
Removing .rbenv/README.md
Removing .rbenv/Rakefile
Removing .rbenv/babel.config.js
Removing .rbenv/config.ru
Removing .rbenv/ja.js
Removing .rbenv/package.json
Removing .rbenv/postcss.config.js
Removing .rbenv/yarn.lock
#　やったか・・・？

[ec2-user@IPアドレス ~]$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.rbenv/

nothing added to commit but untracked files present (use "git add" to track)
#　なぜまだ生きている（残っている）・・・？！

[ec2-user@IPアドレス ~]$ git clean -n
#　ステージングでないファイル・ディレクトリをこのコマンドで一掃。

[ec2-user@ip-10-0-0-235 ~]$ git init
#　初期化してみる。

Reinitialized existing Git repository in /home/ec2-user/.git/

[ec2-user@ip-10-0-0-235 ~]$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.rbenv/

nothing added to commit but untracked files present (use "git add" to track)
#　なん・・・だと？！

[ec2-user@ip-10-0-0-235 ~]$ git clean -dfn
Would skip repository .rbenv/
#　消去したいファイル・ディレクトリを確認

[ec2-user@ip-10-0-0-235 ~]$ git clean -f
#　ステージングでないファイル・ディレクトリをこのコマンドで一掃。

[ec2-user@ip-10-0-0-235 ~]$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.rbenv/

nothing added to commit but untracked files present (use "git add" to track)

[ec2-user@ip-10-0-0-235 ~]$ rm -rf ~/.rbenv
#　ディレクトリを指定し強制消去。

[ec2-user@ip-10-0-0-235 ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Cloning into '/home/ec2-user/.rbenv'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 2852 (delta 0), reused 1 (delta 0), pack-reused 2847
Receiving objects: 100% (2852/2852), 550.44 KiB | 782.00 KiB/s, done.
Resolving deltas: 100% (1781/1781), done.
[ec2-user@ip-10-0-0-235 ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[ec2-user@ip-10-0-0-235 ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[ec2-user@ip-10-0-0-235 ~]$ source .bash_profile
[ec2-user@ip-10-0-0-235 ~]$ rbenv -v
rbenv 1.1.2-30-gc879cb0
# 無事に完了！
```

# 感想
ちょっと疲れました。EC2にGitを入れても、基本的な考えは全く変わらないんだと痛感。以前もGitの勉強で、「ディレクトリを削除する」だけなのに1時間くらいかかった時がありました。でも今回それが（色々忘れてましたのでググりながらやりました）15分で終わったので成長を感じました。もっとスピード上げて頑張ります👊

あとは、いきなり「EC2　Git　エラー内容」で調べるのではなく、「そもそもGitコマンド使えてるー？」ってところから「Git　ディレクトリ　削除」と調べてやってみると案外すんなり行きました。これが「問題の切り分け」「段階ごとの調査」ってことかな？と思いました。

# 参考記事

[Gitのrmコマンドの使い方【画面キャプチャでわかりやすく](https://eng-entrance.com/git-rm)】
[Git clone についてなのですが、1回目不具合で作業を中止して、もう一度やり直しを...](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10167976760)
[[-bash: rbenv: コマンドが見つかりません]aws(ec2)上のrbenvの初期設定エラーの解決方法
](https://qiita.com/KONTA2019/items/e966d4b106d981faef52)