2013-04-02 22 views
11

新しいファイルを追加し、gitで変更したファイルを追加しない方法はありますか?つまり、gitの状態でuntrackedとしてリストされているファイルです。Gitは新しいファイルのみを追加します。変更されたファイルは追加しません

各ファイルを別々に追加するのはもちろんです。

それは私の場合には、これを行うために絶対に必要ではないですが、私にとって本当の問題はここで回答されていますHow to make git-diff and git log ignore new and deleted files?

つまり、新しいファイルに差分を示していないので、私ので、私はこれ以上を求めていますどこにでも答えを見つけることができませんでした。

+0

は、そのためのユースケースは何ですか?ファイルを追加して既存のファイルに関連する変更を追加しないようにする方法がわかりませんし、変更が関連するものでない場合は、他の基準で手作業で選択する必要があります。 –

+0

私のワークフローはdiffを使って各ファイルをチェックして、それを「途中で」取得するように追加します。だから、git diffは、私がチェックするために残されたファイルだけを表示するようになりました。だから、私は新しいファイルを追加して(それらを "ok"にすると仮定して、あるいは信じて)、それらを邪魔にならないようにしたい。 –

答えて

12

たぶん

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

git ls-filesあなたには、いくつかのオプションによってフィルタリングはgitで管理されているファイルを一覧表示することができます。この場合、-oはそれをフィルタリングして「他の(つまり、未追跡のファイル)」のみを表示します。

$(...)ステートメントは、そのコマンドの戻り値をgit addに渡します。ショートモードがなければ

:以下の出力が得られます

あなたはgitの状態のショートモードを使用することができます
+0

無視されたファイルを再度除外する必要があります。そうしないと、 'git add'が文句を言います。例えば。 '--exclude-standard'フラグを' git ls-files -o'呼び出しに使用することによって、 –

+0

OK、それは分かりませんでした。ありがとう! –

+0

私が正しく覚えていれば、それはそれらのファイルを無視し、実際にそれらを追加したい場合は、 '--force'フラグを使用する必要があることを伝えるだけです。それでも、迷惑な。 –

2

man git-status(1)を参照)、

$ git status 

... 


# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# README 
# application/libraries/Membres_exception.php 
no changes added to commit (use "git add" and/or "git commit -a") 

ショートモード付:

$ git status -s 
M application/models/membre_model.php 
?? README 
?? application/libraries/Membres_exception.php 

その後grep、awk、xargを使用して、最初の列が??のファイルを追加できます。

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

、それが働いたことを参照してください。

$ git status 
# On branch new 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# new file: README 
# new file: application/libraries/Membres_exception.php 
+0

良いアイデアですが、問題があります:ファイルパスに空白が含まれている場合、 'awk '{print $ 2}'はそのファイルパスの最初の部分だけを取得します。 –

+0

これについては、 'git status -s | grep '??' | awk '{print substr($ 0、index($ 0、$ 2))}' | xargs git add' –

関連する問題