私のホーム ディレクトリは git リポジトリです。しかし、乱雑にすることなくコードを自由に作成/削除/テストできるようにするためにgit status
、私の .gitignore には明示的にすべて無視があります:
[svenglar@my_box ~]$ cat ~/.gitignore
## Ignore everything by default.
## Use 'git add --force <file>' to add a file/dir.
*
これは、新しいディレクトリを作成しても、リポジトリに含まれないことを意味すると思います。しかし、そうではないようです:
[svenglar@my_box ~]$ git rev-parse --is-inside-work-tree
true
[svenglar@my_box ~]$ mkdir test
[svenglar@my_box ~]$ cd test
[svenglar@my_box ~/test]$ git rev-parse --is-inside-work-tree
true
[svenglar@my_box ~/test]$ git status
# On branch master
nothing to commit, working directory clean
git status
きれいだと思いますgit rev-parse --is-inside-work-tree
が、新しいディレクトリはリポジトリの一部だと思います。
私の質問は、新しいディレクトリを作業ツリーの一部と見なさないように git を構成するにはどうすればよいですか?
--更新--
そもそもこれを尋ねている理由は、git リポジトリで作業しているときに .git-prompt.sh を使用して BASH のプロンプトを変更するためです。ホームフォルダーの下に、git repos である複数のプロジェクト (フォルダー) があります。それらのディレクトリの 1 つに cd すると、どのブランチがアクティブかなどを確認したいのです...
しかし、「ホーム」リポジトリにいるときは .git-prompt.sh を使用する必要はありません/使用したくありません。これは、「作業」ディレクトリとは見なされないためです。
私の修正は、最後の「printf」コマンドの前に次のチェックで .git-prompt.sh を変更することです。
# Only modify $PS1 if we are not in the home repository.
[[ $(git rev-parse --show-toplevel) =~ "${HOME}/" ]] && printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
pwd
以前は、含まれているかどうかのみを確認していまし${HOME}/
た (最後のスラッシュは、サブディレクトリにいることを意味します)。
ご回答ありがとうございます。彼らは、なぜ私が間違っていたのかを理解するのを助けてくれました。