Gitリポジトリに保存されていないファイルのリスト

Gitリポジトリに保存されていないファイルのリスト

特定のディレクトリ内のどのファイルがGitで管理されていないかを知りたいです。私がこれを行う理由は、バックアップにGitを使用し、最終的にすべてのファイルをGitに保存したいからです。

これを行うことができるUnixツールは何ですか?find合理的に効率的な方法でこれを行う方法はありますか?

例:

RFC関連のコンテンツを保存するフォルダがあります。

.
├── TheFile
└── tests
    ├── 4180
    │   └── data
    │       ├── bad
    │       └── good
    │           └── linebreaks.csv
    ├── get-rfc.sh
    ├── .git <contents omited>
    ├── LICENSE
    ├── README
    └── rfc4180.txt

私は私を出力するコマンドを探しています。

TheFile

ベストアンサー1

find the_starting_dir \( -type d -exec test -d '{}'/.git \; -prune \) -o -print

最も移植性の高い find 呼び出しではありませんが、GNU find で動作します。

検索はディレクトリツリーに移動します。この用語は-prunetrue を返しますが、findサブツリーの追加処理を停止します。したがって、左側には-o「これがディレクトリであり、サブディレクトリがtestあると言えばと言い、trueを返す.gitpruneツリーでこれが完了したのです」と言います。右側には「別の方法で印刷」と表示されています。

目次を印刷したくない場合は、に-print変更します\( ! -type d -print \)。ただし、目次が空であることを示す表示は表示されません。

-print次に変更してリストを取得できます-ls-printf マニュアルを見るその他など

おすすめ記事