概要
git add
したときに下のようなエラーが出ました。
error: 'work2' does not have a commit checked out
fatal: adding files failed
調べてみると、.gitが2つあることが原因でした。片方を削除するとaddできました。
経緯
以前作っていたリモートリポジトリ
前にGithubにリモートリポジトリを作って、ローカルからファイルをpushしていたものがありました。仮にこのリポジトリを「sample」とします。
ここに「work1」ディレクトリとREADME.mdファイルが入っていました。work1ディレクトリの中にもいくつかファイルが入っています。
sample/
- work1
- README.md
新しいディレクトリを追加したい
以前作ったときは、ローカルのファイルをVScodeからpushしていました。今回、cloud9上のファイルをpushしたいと考えていました。また「work2」ディレクトリを作って、その中にファイルという構成にしたいと考えていました。
sample/
- work1
- work2
- README.md
まず、Githubで新しいディレクトリ「work2」を作りました。
Add fileからCreate new fileを選びます。
ファイル名に「work2/」とするとパスになり、その後ろに .gitkeepとするとディレクトリを作成できます。
pullする
Cloud9でターミナルを開き、リモートリポジトリと紐付けした後、pullしました。ローカルのmainブランチにリモートのmainブランチがマージされました。
$ git init
$ git remote add orgin リモートリポジトリURL
$ git pull origin main
addする
work2ディレクトリの中に追加したいファイルを入れる&作ります。その後、addしました。
$ git add .
エラー
すると、以下のようなエラーが出ました。
error: 'work2' does not have a commit checked out
fatal: adding files failed
解決
調べてみると、.gitが2つあることが問題であることがわかりました。1つはリモートリポジトリをpullしてきたローカルのディレクトリの中に、もう1つはwork2ディレクトリの中に作られていました。work2ディレクトリの中にある**.git**を削除してもう一度addすると、今度はpushまで問題なくできました!
原因?
おそらく、間違えてwork2ディレクトリにいるときにgit add
してしまったのが原因かと思われます。そこでエラーが出たのでわけがわからず、git init
するというとんでもない間違いをしたがためにこんなことになったのだと思います。
まとめ
git add
したときに以下のようなエラーが出たときは、.gitが2つ存在していないか確かめると良いことがわかりました。
error: 'work2' does not have a commit checked out
fatal: adding files failed