Git で追跡されていないファイルを無視する
この記事では、Git リポジトリで追跡されていないファイルを無視するために使用できる 2つの方法について説明します。 ローカル リポジトリに追跡されていないファイルやフォルダーがいくつかある場合、git status
コマンドを実行すると、多くの行が出力されます。
すぐに飛び込みましょう。
Git で追跡されていないファイルを無視する
2つの異なるシナリオを使用して、2つの方法について説明します。 最初のケースでは、リポジトリ Delftscopetech
があります。
これが私たちのリポジトリにあるものです。
pc@JOHN MINGW64 ~/Documents/GitHub/Delftscopetech (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: Delft.pdf
new file: sample.ph
Untracked files:
(use "git add <file>..." to include in what will be committed)
Example Code 2
Example Code 2.php
Example Code 3.php
Example code 1.php
downloadpdf.php
htmllinkpdf.html
insert.php
git status
コマンドは、コミットの準備ができている 2つのファイルと、追跡されていないいくつかのファイルを示します。 追跡されていないファイルを削除せずに、出力から除外したかったのです。
これについてはどうすればよいでしょうか?
-uno
パラメータを git status
コマンドに追加します。 それはとても簡単です。 リポジトリで試してみましょう。
pc@JOHN MINGW64 ~/Documents/GitHub/Delftscopetech (main)
$ git status -uno
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: Delft.pdf
new file: sample.php
Untracked files not listed (use -u option to show untracked files)
パラメータ -uno
は --untracked-files=no
のエイリアスです。
パラメータなしで git status
コマンドを実行すると、追跡されていないファイルが表示されます。
追跡されていないファイルを完全に無視したい場合はどうすればよいでしょうか? どうやってそれを行うのですか?
以下のコマンドを使用します。
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
これにより、リポジトリ内の現在追跡されていないファイルが永久に非表示になります。 コマンドが機能するには、既存の .gitignore
ファイルが必要であることに注意してください。
ファイルがない場合、gitignore
は自分自身を無視します。 .gitignore
ファイルがない場合は、次のコマンドを使用します。
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
.gitignore
ファイルが作成される前に、git status --porcelain
部分が実行されます。 git status --short
の代わりに git status --porcelain
を使用して、解析しやすい形式で出力を取得します。
grep '^??'
部分は、??
で始まるすべての行を除外します。 マニュアルによると、これらの行はリポジトリ内の追跡されていないファイルに対応しています。
cut -c4-
の部分は、すべての行の最初の 3 文字を削除することで、追跡されていないファイルへの道を開きます。
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