Gitは変更、削除、追跡されていないすべてのファイルを追加しますか?


256

削除したり、追跡を解除したりなど、どのような操作をしても、すべてのファイルを追加する方法はありますか?コミットのように。特に大規模な製品で作業しているときは、コミットするたびにファイルをすべてgit addまたはgit rmすべてにしたくありません。


回答:


307

試してください:

git add -A

警告: git 2.0(2013年半ば)以降、これは常に作業ツリー全体にファイルステージングします。
作業ツリーの現在のパスの下にファイルをステージングする場合は、以下を使用する必要があります。

git add -A .

参照してください:の違いgit add -Agit add .


これは私にとってはうまくいきませんでした...このディスカッションで端末の入出力をどのように表示できますか?このディスカッションへの回答として端末出力をコピーして貼り付けますか?
Rakib、2011年

-ここで私が直面しています問題ですstackoverflow.com/q/7726131/636762 -この1に親切に助けを私にしてください
Rakib

これは、gitのバージョンが古い場合も機能しません。git 1.5.2.5を実行しているサーバーでスクリプトを実行していました。git add -Aが機能していませんでした。スクリプトから、エラーメッセージは報告されませんでした。コマンドラインからのみ、-Aを追加するのが正当なオプションではないことがわかりました。
代名詞、

しかし、なぜコミットしたいときにファイルを追加しなければならないのですか?毎回私は...それを追加する必要がありますにファイルを変更した
フラージ

3
これがGitの仕組みです。コミットする前に、ステージング領域に変更を追加する必要があります。たとえば、常にすべてのファイルではなく、一部のファイルのみをコミットに追加してコメントを付けることができます。ここでは、これはやって、なぜされているものの便利な説明があります:gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash

75

試す

git add -u

" u"オプションは更新を表します。これにより、リポジトリが更新され、ローカルコピーで削除したファイルがリポジトリから実際に削除されます。

git add -u [filename]

削除を1つのファイルだけにステージングします。プッシュされると、ファイルはリポジトリに存在しなくなります。

または、

git add -A .

に相当

git add .

git add -u .

余分な「。」に注意してください 上git add -Agit add -u


警告: git 2.0(2013年半ば)以降、これは常に作業ツリー全体にファイルステージングします。
作業ツリーの現在のパスの下にファイルをステージングする場合は、以下を使用する必要があります。

git add -A .

参照してください:の違いgit add -Agit add .


42

次の回答はGitバージョン1.xにのみ適用されますが、Gitバージョン2.xに適用されます。

あなたが欲しいgit add -A

git add -A ステージすべて;

git add . 新規および変更されたステージ。削除されません。

git add -u 新しいものなしで、変更および削除されたステージ。


上記はGit 1.xにのみ適用されることに注意してください。gitバージョン2.xの場合、git add -Aと同等git add .です。詳細については、こちらをご覧ください。
jdhao

27

git add --all または git add -A または git add -A . すべてのステージ

git add . ステージニュー修正しかし、削除されなければ

git add -u ステージは変更および削除されましたが新しいものはありません

git commit -a手段git add -ugit commit -m "message"

このコマンドを書き込んだ後、次の手順に従います。

  1. 押す i
  2. メッセージを書いてください
  3. 押す esc
  4. 押す :wq
  5. 押す enter

git add <list of files> 特定のファイルを追加

git add *.txt 現在のディレクトリにすべてのtxtファイルを追加する

git add docs/*/txt docsディレクトリにすべてのtxtファイルを追加する

git add docs/ docsディレクトリにすべてのファイルを追加する

git add "*.txt"またはgit add '*.txt'プロジェクト全体のすべてのファイルを追加します


12

削除されたファイルが追加されるかどうかはわかりませんがgit add .、ルートからすべての追跡されていないファイルが追加されます。


削除されたファイルを追加する方法についての私の答えを参照してください
マットクナイザー

5

これは私の代替です(任意のbashで):

$ git status -s|awk '{ print $2 }'|xargs git add

リセットするには

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD

5

私はG2プロジェクトを作成しました。これは、コマンドラインのgit愛好家のためのフレンドリーな環境です。
githubからプロジェクトを入手してください-G2 https://github.com/orefalo/g2

便利なコマンドがたくさんあり、そのうちの1つはまさにあなたが探しているものです。 freeze

フリーズ -リポジトリ内のすべてのファイル(追加、削除、変更)をステージング領域にフリーズし、次のコミットに含めるためにそのコンテンツをステージングします。また、特定のパスをパラメーターとして受け入れます


5

以下のための新しいバージョンのGitの。

私が試したところgit add -A、これが促されました、

警告:ツリーのサブディレクトリからのパス引数なしの「git add --all(または-A)」の動作はGit 2.0で変更されるため、今後は使用しないでください。ツリー全体のコンテンツを追加するには、次のコマンドを実行します。

git add --all:/(またはgit add -A:/)

コマンドを現在のディレクトリに制限するには、次のコマンドを実行します。

git add --all。(またはgit add -A。)

現在のGitバージョンでは、コマンドは現在のディレクトリに制限されています。


次に、うまくいった以下を試しました

git add --all :/

3

バージョン2.0以降のGitドキュメントから:

ツリー全体のコンテンツを追加するには、次のコマンドを実行します。

git add --all :/

または

git add -A :/

コマンドを現在のディレクトリに制限するには、次のコマンドを実行します。

git add --all .

または

git add -A .

2

次の行を使用して、.gitignoreにリストされているファイルを除いて、すべての変更されたファイルと新しく作成されたファイルをステージングするために追加します。

git add $(git ls-files -mo --exclude-standard)

(構文$()はbashシェル用です)。コマンドラインオプション-modを使用すると、削除されたファイルも追加されると思います。または、空白が埋め込まれたファイル名がある場合は、次の1行で対処できます。

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