2011-02-05 4 views
1

私のGitリポジトリで、いくつかのファイルを変更しました。私はそれらのすべてをステージングしたい。しかし、コマンド間に違いがあります:Gitコミットコマンド

git add file1.php file2.php 

git add . 

2番目のコマンドステージは、ファイルまたはプロジェクトのすべてのファイルのみを変更しましたか?またはこれらのコマンドは等しいですか?

答えて

7

git add file1.php file2.phpステージファイルfile1.phpfile2.phpです。

git add .ディレクトリ内のすべてのファイルと、コミットされていないサブディレクトリを含むすべてのサブディレクトリをステージングします。 (限り、彼らはあなたの.gitignoreによって無視されていない)

いずれかのコマンドは、ファイルが変更されている場合にステージングします。

+0

に相当するgit commit -aを使用することができます。変更されていないファイルをステージングすることはノーオペレーションであると言うと、ステージング領域には暗黙のうちに未変更のバージョンが含まれていると言う方がより正確です。さらに、両方のコマンドは* new *ファイルをステージングします。 – Cascabel

+1

@Jefromi、HEADと次のコミットの*違い*だけでなく、次のコミットの完全なツリーを格納しているとインデックスを考えるなら、真です。それはもちろん、それを考える正しい方法ですが、それはgitの新人には明らかではないかもしれません。 – MatrixFrog

1

file1.phpfile2.phpが唯一変更されたファイルまたはuntrackedファイルである場合、変更されていないファイルはとにかくステージングできないため、2つのコマンドは同等です。

0

Sebastian P.が説明したように、これらのコマンドは同等ではありません。迅速なすべての変更されたファイルのコミットのためにすべての変更されたファイルをステージに

、あなたは、またgit add -u

を使用することができ、あなたはあなたの最後の文は少し誤解を招くgit add -u ; git commmit