git add。vs git commit -a


回答:


139

git commit -aはほぼ[*]と同じことを意味しgit add -u && git commitます。

これは、git add .無視されない追跡されていないファイルを追加するのと同じではなく、git add -uすでに追跡されたファイルへの変更(削除を含む)のみをステージングします。

[*]リポジトリのルートディレクトリにいない場合は、微妙な違いがあります。git add -uカレントディレクトリ以下にあるファイルへのステージの更新は、それはと同等だgit add -u .のに対しgit commit -aへのステージとコミットの変更すべての追跡ファイル。


3
[*]の動作は、整合性のためにgit 2.0で変更されます。
user1284631 2013

2
どちらの方向に?つまり、-aはcommit -aのようになり、または-uはcommit -aのようになりますか?
Miles Rout 2013

5
@MilesRout:のgit add -uようになりgit commit -aます。それがgit add -u .あなたの意味するものであるかどうかを明示的に言う必要があります。
CBベイリー

これは、Git v 2.0のgit add .動作が異なる
Nick Volynkin

13

git commit -agit add認識しているすべてのファイルを自動的に呼び出します。を使用git addして、コミットするファイルを選択できます。詳細についてはドキュメントを参照してください:こちら


11
それが知っているすべてのファイルは、特にそれらが追加されなかったと思われるため、私には非常に不明確です
Nikana Reklawyks

1
あなたは「それは知っているすべてのファイル」の明確化を追加する場合@Alternative、まだこの答えは.....よりよく行うことができます
Pacerier

2
@Pacerierと同等git add -u
代替案

2
@ Z.Khullah、「all(...)」は「追跡されたファイル」を意味しますか?
TheFrost 2018

1
@TheFrost正確に!
Z. Khullah

1

git commit -aスイッチをcommitコマンドで使用して、すべての既知のファイル(つまり、インデックスに既にリストされているすべてのファイル)からの変更を自動的に「追加」します。

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