1つのファイルを除くすべてのファイルをコミット用に追加
この記事では、選択したファイルを除外しながら、コミットするすべてのファイルを追加する方法について説明します。 これは、コミットに含めたいファイルが多数あり、1つのファイルを除外する必要がある場合に便利です。
一度にファイルを追加する代わりに、次の簡単な手順に従うことができます。
1つのファイルを除くすべてのファイルをコミット用に追加
以下の例を見てください。 20 以上の変更済みファイルがあると仮定すると、1つを除くすべてのファイルを追加するにはどうすればよいでしょうか。
requirements.txt
ファイルをインデックスから除外したいとしましょう。 これについてはどうすればよいでしょうか?
いくつかのコマンドを使用して、ステージング中に requirements.txt
ファイルを除外できます。 これらは:
git reset
コマンドでアンステージします。- Exclude Pathspec を使用します。
- ファイルを追跡から一時的に除外します。
git reset
コマンドを使用する
git reset
コマンドを使用する場合は、すべてのファイルをインデックスに追加してから、必要なファイルのステージングを解除する必要があります。
構文:
# Start by staging all files
$ git add .
# To exclude a file
$ git reset -- path/to/file
# To exclude a folder
$ git reset -- path/to/folder/*
この例では、以下に示すように、すべてのファイルを追加し、requirements.txt
ファイルのステージングを解除します。
$ git add .
これにより、すべてのファイルがステージングされます。 requirements.txt
ファイルのステージングを解除するには、次を実行します。
$ git reset -- path/to/requirements.txt
このコマンドは、requirements.txt
ファイルのステージングを解除する必要があります。
除外パス仕様を使用する
Git バージョン 1.9.0 以降では、コミットするファイルを追加する際に 1つ以上のパスを削除できます。 これは、:(exclude)
パス指定で可能であり、:!
とも記述されます。 または :^
.
ここに例があります。
$ git add --all -- ':!path/to/requirements.txt'
フォルダを除外するには:
$ git add --all -- ':!path/to/folder/*'
ファイルを追跡から一時的に除外する
以下に示すように、requirements.txt
ファイルを追跡から一時的に除外できます。
$ git update-index --assume-unchanged path/to/requirements.txt
git add .
を実行するたびに、Git は requirements.txt
ファイルを除外します。 指図。 --assume-unchanged
とマークされたすべてのファイルを一覧表示するには、次のコマンドを実行します。
$ git ls-files -v | grep "^h"
除外リストからファイルを削除するには、次を実行します。
$ git update-index --no-assume-unchanged path/to/requirements.txt
簡単に言うと、1つを除くすべてのファイルをインデックスに追加するには、いくつかの方法があります。 既に説明したように、ファイルを追跡から一時的に除外するのが最もクリーンで効率的です。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn関連記事 - Git Add
- 1つのコマンドで Git Add と Git Commit
- 1つのコマンドで git add、git commit、および git push
- Git add コマンドを元に戻す
- Git でコミットするフォルダー内のすべてのファイルを追加する
- Git のステージング エリア