フォルダー全体をリポジトリに再帰的に追加する


250

GitHubのマスターブランチにブランチを追加し、そのブランチにフォルダーをプッシュしようとしています。

ブランチのフォルダー構造は次のようになります-SocialApp / SourceCode / DevTrunk / SocialAppとすべてのソースコードファイルは最後のフォルダーにあります。

次のGitコマンドを使用しています。

git add *
git commit -m with the message
git push

これにより、最初のフォルダー「SocialApp」のみがGitHubにプッシュされ、フォルダー内のSourceCodeフォルダーは無視されます。どうすれば修正できますか?


4
ファイルはどこにありますか?彼らは無視されていません.gitignoreか?
CharlesB 2013

This is pushing only the first folder-gitはフォルダをまったく気にせず、ファイルのみを気にします。コミットを表示してください-サブモジュール、シンボリックリンク、またはフォルダー以外の何かをコミットしました
AD7six

私も同じ問題を抱えています。これは問題ではなく、予想される動作です。驚くほど多くの解決策があります。

注:フォルダが空の場合は追跡されません。空の.keepファイルをそこに置いて空のディレクトリを保持することをお勧めします
Dude

回答:


356

.gitignoreサブディレクトリが無視されている場合は、ファイルを確認してください。

その後、もう一度お試しください

git add --all
git commit -am "<commit message>"
git push

4
これには、.gitignoreで言及されているファイルは含まれないことに注意してください。私は通常それらを手動で追加するか、次のようなバッチファイルを使用しますfor /R %%f in (*.*) do git add --force %%fbitbucket.org/jeroenp/besharp.net/src/tip/Scr​​ipts/GIT/…を参照)
Jeroen Wiert Pluimers '28

10
フォルダのツリー構造全体を再帰的に追加するには、コマンドは次のようにする必要がありますgit add --all :/
Jason Hartley

7
@JeroenWiertPluimers git add -f -allは.gitignoredファイルを追加するように機能します
Orwellophile 2016年

3
@JasonHartleyあなたのコメントは答えになるかもしれません。ありがとう!
ShutUpMagda 2017年

4
これは、現在のフォルダーだけでなく、すべてのステージングされていないファイルをgitリポジトリに追加しませんか?元の質問が求めていることではないと思います。
テッド

31

これは私のために働きました:

git add . --force

1
他の回答では、コマンドの引数としてファイルリストを計算する必要がありますが、これはそうではないため、より良い選択です。
トプカラ2017

3
間違いなく最良の答えです。1つの編集は--force、無視が引き続き尊重されるようにする必要がある場合は必要ないことを言及することです。
GrafikRobot

31

SETUP-ローカルサーバーのローカルリポジトリ-クライアントはLAN経由でローカルサーバーに接続されています

git add foldername/\\*

サーバーに到達するには...

git commit -m "comments..."
git push remote_server_name master

ほとんどの場合、ユーザーはremote_server_nameを起点として割り当てます...

git remote add remote_server_name username@git_server_ip:/path/to/git_repo

9
として失敗しましたfatal: pathspec 'foldername/\\*' did not match any files。として働いたgit add foldername/\*
Tpojka 2018年

違いは何だgit add foldername/\\*とはgit add --all
Danijel

17

トップディレクトリから呼び出された「git add *」と「git add SocialApp」は、すべてのディレクトリを再帰的に追加する必要があります。

おそらく、SocialApp / SourceCode / DevTrunk / SocialAppにファイルがないため、これが理由です。

「touch SocialApp / SourceCode / DevTrunk / SocialApp / .temporary」を呼び出して(.gitignoreを確認して)、もう一度git addを試してみてください。


2
私はそうは思わない、私はgit add *を使用し、同じ問題を抱えています。

16

私の場合、以前にgitリポジトリを初期化していたため、サブディレクトリに.gitフォルダーがありました。サブディレクトリを追加したときは、含まれているファイルを追加せずにサブプロジェクトとして追加しただけです。

サブディレクトリからgitリポジトリを削除し、フォルダを再度追加することで問題を解決しました。


これで解決しました。私はまた、中にキックを修正するためにフォルダ自体の名前を変更する必要がありました。
トーテム

6

私はこれを単に使用しました:

git add app/src/release/*

追加するフォルダーを指定し、を使用*して内部にあるすべてのものを再帰的に追加するだけです。


5

私は少し時間のかかるこの問題に出くわしました、そしてgitが空のフォルダーを保存しないことを思い出しました。保存したいフォルダツリーがある場合は、少なくとも.gitkeepというファイルのような、そのツリーの少なくとも最も深いフォルダにファイルを置いて、gitによるストレージに影響を与えることを忘れないでください。


5

ディレクトリとその中にあるすべてのファイルを再帰的に追加する場合は、追加するディレクトリが置かれているディレクトリに移動します。

$ cd directory
$ git add directoryname

1
CDディレクトリにgitアドオン*
フランソワ・リチャード

3

私も同じ問題があり、.gitignoreファイルがありません。私の問題は次の方法で解決されました。これには、すべてのサブディレクトリとファイルが必要です。

git add <directory>/*

1

Webサービスのソースコードとそのクライアント側プロジェクトを含めたい場合があります。どちらも別個のgitリポジトリを持っています。私は実際には、次のコマンドを使用してすべてのファイルを追加するために使用されます。

git add -A

しかし、何らかの理由で、それはフォルダを追加するだけです。後で、サーバーファイルにも.gitフォルダーが含まれているため、コマンドが機能しないことがわかりました。

tl; dr.gitステージングするフォルダー内にフォルダーがないことを確認します。


1
.gitフォルダを削除したくない場合、どうすればこれを回避できますか?
ロール


1


Windowsマシンを使用している場合は、ファイルがあるフォルダーに移動します。gitbashを起動して、そこからコマンドラインインターフェイスを取得し、これらのコマンドを使用する必要があります。

git init   //this initializes a .git  repository in your working directory

git remote add origin <URL_TO_YOUR_REPO.git> // this points to correct repository where files will be uploaded

git add *   // this adds all the files to the initialialized git repository

マスターにマージする前にファイルに変更を加える場合は、実行して変更をコミットする必要があります

git commit -m "applied some changes to the branch"

このチェックアウト後、ブランチをマスターブランチに


言及されている回答のみinit
Atul

1

シナリオ/解決策1:万が一、ファイルに/ がない
ことを確認してください。 FolderSub-folder.gitignore


シナリオ/ソリューション2:
デフォルトでは、git add .再帰的に機能します。


シナリオ/ソリューション3:
git add --all :/スムーズに機能するが、git add .機能しない(機能しない)。
(@JasonHartleyのコメント)


シナリオ/ソリューション4:
私が個人的に直面した問題はSubfolders or FilesFoldersでした。

例えば:
Folder/Subfolder-L1/Subfolder-L2/...file12.txt
Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt
Folder/Subfolder-L1/...file1.txt

それでGit私はを追加するように勧められましたgit submodule、それを試しましたが苦痛でした。


最後に私のために働いたのは:

1. git addの最後の最後/レベルにある1 つのファイルFolder
例:
git add Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt

2. git add --all :/今。
それは非常に迅速にすべてのFoldersSubfoldersを追加しますfiles



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