Gitはすべてのサブディレクトリを追加します


84

フォルダーとそのすべてのサブディレクトリをgitリポジトリに追加するのに問題があります。グーグルを行った後、これは非常に人気のある質問であることに気付きました。運が悪かったので、それぞれの提案、特にgit-addのmanページからの提案を試しました。私もgit add -A成功しませんでした。簡単にするために、gitリポジトリをとして初期化したとしますDir1。次に、ファイルの次のディレクトリ構造があります。

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

私の実際のファイルには5〜6レベルの深さのサブディレクトリがあるので、各サブディレクトリ内のすべてのファイルをリポジトリに追加するgitコマンドはありますか?現在、リポジトリにgit add Dir1/\*表示さDir2れているマニュアルページから提案を行うと、緑色のフォルダとして表示され、開くことができません。そのため、のすべてのファイル/フォルダがDir2取得されなかったと思われます。追加されました。どんな助けでも大歓迎です。私は新しいgitユーザーです(使用してから1週間も経っていません)ので、初心者レベルでの指示を維持するようにしてください。


2
git add任意のディレクトリのは自動的に再帰的です。git add .リポジトリのトップレベルで使用すると、そこにすべてが追加されます。そうでない場合.gitignoreは、有効です(ローカルまたはグローバル)。
Nevik Rehnel 2013年

確認しました.gitignoreか?どういうわけかあなたのディレクトリは無視されます。
ogzd 2013年

2
の出力はgit status --ignored何ですか?
クロニアル2013年

1
この質問を見た他の人を助けるために、あなたが作ったディレクトリにファイルがない場合、それらはによって追加されませんgit add .。gitがそれらを追跡するには、ディレクトリにいくつかのファイルを追加する必要があります。
2015年

回答:


106

行う、

git add .

リポジトリのルートにいる間。それはすべてを追加します。そうした場合git add *、それだけでファイルに追加する*にポイントを。単一のドットはディレクトリを示します。

上記のコマンドの後でディレクトリまたはファイルがgitindex / repoに追加されなかった場合は、.gitignoreファイルでgitによって無視としてマークされているかどうかを確認することを忘れないでください。


8
これを試してみました。まだ動かない。gitaddを実行しました。git commit git push origin master何かが足りませんか?
Josh Bradley

4
ファイルがDir1の下にあると仮定すると、cd Dir1; git init; git add . ; git commit;他に何もする必要はありません。あるディレクトリにあるファイルを無視する.gitignoreがあり、それでもそれらを追加したい場合は、のgit add -f .代わりに行う必要がありますgit add .
Kalle Pokki 2013年

5
「gitadd」を試してみました。しかし、それは機能していませんでした。翌日、私は戻って試してみましたが、すべてが「うまくいった」ので、ありがとう!ライトが再び点灯したときに消えるのは、真夜中のバグの1つだったに違いありません。
Josh Bradley

2
gitadd。は機能せず、サブディレクトリとそのコンテンツを再帰的に追加しません。
2014

これを一貫して機能させるには、新しいコマンドウィンドウを開く必要がある場合があります。
ケージラトラー


13

サブディレクトリ自体がgitリポジトリである場合(つまり、.has .gitディレクトリがある場合)にも問題が発生する可能性がありますls -a

削除するには、サブディレクトリに移動してrm .git -rf


2
OSX 10.11.6ターミナル使用の場合:RM -rf .git
セバスチャン・レミー

2
同じことですね。
PaulB 2017年

5

また苦労しましたが、正しく入力しました

git add -f ./JS/*

ここで、JSは、サブフォルダーとファイルを含む私のフォルダー名です。


2
無視されたファイルを追加し、リポジトリを台無しにする可能性があります。
changtung 2016年

1

これが当てはまるかどうかはわかりませんが、私にとって問題と思われたのは、一部のサブディレクトリに.gitignoreファイルがあることでした。繰り返しますが、これを保証することはできませんが、これらが削除された後はすべてが機能しました。


0

ほとんど場合、.gitignoreファイルが使用されています。.gitignoreファイルは、リポジトリのルートレベルだけでなく、任意のサブレベルにも表示される可能性があることに注意してください。ルートレベルからこれを試して、それらを見つけることができます。

見つける。-名前「.gitignore」

次に、結果を調べて、サブディレクトリの追加を妨げている可能性があるものを確認します。

サブモジュールが関係している場合もあります。問題のあるディレクトリで「.gitmodules」ファイルを確認してください。


0

私が追加しようとした(サブ)フォルダの名前が「_Something_」で始まるときに、この問題を以前に見ました。

アンダースコアを削除すると、機能しました。フォルダに問題の原因となる可能性のある文字が含まれていないかどうかを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.