web-dev-qa-db-ja.com

git add。 ->新しいファイルでまだ「コミットするものがありません」

Gitに苦労していますが、ファイルを追加できないようです。 lsを実行して、ファイルが現在のディレクトリにあることを示してから、git add .その後git status「コミットするものがありません」と表示されました。

JJ-Computer:first_app JJ$ git init

Reinitialized existing Git repository in /Users/JJ/Rails_projects/first_app/.git/

JJ-Computer:first_app JJ$ ls

Diary.txt README.rdoc config.ru log   tmp
Gemfile   Rakefile  db    public    vendor
Gemfile.lock  app   doc   script
README    config    lib   test

JJ-Computer:first_app JJ$ git add .

JJ-Computer:first_app Jenn$ git status

# On branch master
nothing to commit (working directory clean)

JJ-Computer:first_app JJ$ 
43
RandyMy

あなたのコマンドは正しいように見えます(私は何度もそうしました)。

初挑戦

git add --all

git statusを試してください。それで解決するとは思いませんが、次に試す価値はあります。

次に、.gitignoreファイルがある場合は(git initを実行した最上位にある)、. gitignoreファイルを確認してください。

cat .gitignore

ファイルが無視される原因となっているリストを削除します。たとえば、*だけのエントリがありますか?

次の試行:

git add --force

git statusを試してください。

これらのいずれも機能しない場合、git initからの出力が「初期化」ではなく「再初期化」されているため、何かが台無しになっている可能性があります。初期化したばかりで履歴を失うことを気にしない場合は、最初に.git dirを削除してください:

rm -rf .git

そして、上記と同じコマンドを再実行します。それでもうまくいかない場合は、セットアップに関する追加情報が必要になります。例えば、グローバルな.gitignoreファイルがあります:~/.gitignore_globalは編集する必要があります(必要ない場合は削除します)。

86
quux00

同様の問題を何度も経験しているので、あなたがしようとしていることを再確認する必要があることを追加したいと思いますプロジェクトのルートフォルダーから追加し、現在プロジェクトにあります

41
jimjoebob123

他の誰かがこれにぶつかった場合、gitがディレクトリを追加しないもう1つの理由は、おそらく.gitディレクトリ内のディレクトリ。

この場合、gitはそれを submodule として扱うことを期待しています。それ以外の場合は、単に.git(ルートではなくディレクトリ内)および再試行します。

便利なコマンド:

find . -name '.git' -type d
10
Wtower

私の場合、私はスタッシングによって解決し、その後すぐにスタッシュを適用しました:

git stash
git stash apply

このシーケンスは、レポジトリを以前とまったく同じように残します。この後、git add [file]は正常に機能しました。

(suse linuxでgitバージョン1.7.12.4を使用)

4
Pablo

何らかの理由で、かなり長い間Google Drive File Streamのディレクトリにリポジトリを置いていたときに、Gitはうまく機能しました。昨日、私は同じ問題に遭遇しました。 git add .はコミットするものを報告しませんが、git add <some explicit filename>は問題なく機能しました。ディレクトリをローカルのハードドライブ(Google Drive File Streamから)に移動し、git add .保留中の変更をすべてピックアップしました。ディレクトリがまだGoogleドライブのファイルストリームにある場合、ディレクトリを「オフラインで使用可能」に設定しても効果がありません。

2
GarlicFries

私の場合、現在のgitディレクトリにgitディレクトリをネストすると発生します:

A1.Java
B1.Java
.git
someDirectory
  C1.Java
  .git        
cd someDirectoy
rm .git -rf
1
Vincent

Quux00の.gitignore回答を補足すると、ビルドマネージャー(Maven)の一時的な 'build'ディレクトリのためにディレクトリが追跡されていないことがわかりました。 Mavenは、プログラムをビルドするときに.gitignoreに 'build'を追加したため、自分のディレクトリ(偶然に 'build'という名前)が追跡されませんでした。これは、「build」ディレクトリの名前を変更することで解決しました。

1
TracNav