おそらくリポジトリーが複数あります。
どのリポジトリーに git add
して編集履歴を管理したいかによって
対応が変わってきます。
原因の理解
原因はhello_railsディレクトリ内に.gitディレクトリがあるからだと思うのですが、
たとえば、次のような状態を想定します:
console
1**/current/
2 +.git
3 +---rails/
4 +---hello_rails/
5 +---.git
6 +---app
7 +---bin
8 +---...
上記の状態で、**/current/
にいる状態で git add
すると同じエラーメッセージが表示されます:
console
1$ git add rails/hello_rails/
2error: 'rails/hello_rails/' does not have a commit checked out
3fatal: adding files failed
上記の例では
**/current/.git
と **/current/rails/hello_rails/.git
ふたつのリポジトリーがあり、
current
という Git 管理のディレクトリーの中に
hello_rails
という Git 管理のディレクトリーがある状態になっています。
hello_rails/.git に add する場合
ディレクトリーを移動すれば add できます:
console
1cd rails/hello_rails
2git add .
hello_rails より上の階層にある .git に add する場合
Git 管理のディレクトリーを入れ子で管理するには
submodule という
やや特別な方法で管理を行う必要があります。
おそらく Rails のチュートリアルかなにかを実施していらっしゃると思うので、
submodule を使う可能性は低いと思われます。
チュートリアルを確認して、hello_rails/.git
が不要であれば、
コマンドを間違えないよう細心の注意をはらって、削除しましょう:
console
1rm -rf rails/hello_rails/.git
すると、git add
できるようになります:
console
1git add rails/hello_rails
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。