16

新しいファイルのみを追加し、変更されたファイルを git で追加しない方法はありますか? つまり、git ステータスで追跡されていないとリストされているファイルです。

もちろん、各ファイルを個別に追加する以外。

私の場合、これを行うことは絶対に必要というわけではありません。本当の質問はここで答えられます: How to make git-diff and git log ignore new and deleted files?

つまり、新しいファイルに diff を表示しないでください。どこにも答えが見つからなかったので、もっと質問しています。

4

2 に答える 2

29

多分

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

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

この$(...)ステートメントは、そのコマンドの戻り値を引数として に渡しますgit add

于 2013-04-02T10:36:49.877 に答える
7

git status のショート モードを使用できます ( 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
于 2013-04-02T10:55:03.143 に答える