0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-07-25

解決したいこと

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コマンドの使い方【画面キャプチャでわかりやすく
Git clone についてなのですが、1回目不具合で作業を中止して、もう一度やり直しを...
[-bash: rbenv: コマンドが見つかりません]aws(ec2)上のrbenvの初期設定エラーの解決方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?