Find a file in working directory
# Find 'a.c' in the current directory and its subdirectories.
$ git ls-files -- '**/a.c' a.c
Find a file in staging area
# Find 'a.c' in the current directory of staging area
# --cached, show files in the staging area
$ git ls-files --cached -- '**/a.c' a.c
Find a file in a commit
It also shows whether a file is tracked or not in a commit.
# Find 'a.c' in the current directory of HEAD commit
# -r, recursely
# --name-only, list file names (including path) only
$ git ls-tree -r --name-only HEAD | grep a.c
git ls-tree -r --name-only <commit> lists all files in a specific commit.
git ls-files lists files in index, combining it and
wc -l which could count lines, you can get the count of tracked files in Git.
Get count of tracked files
To get count of tracked files, run below command:
# Get count of tracked files in the current directory, including files in its subdirectories
$ git ls-files | wc -l
git ls-files lists files in the index of the current folder, if a file is removed from the index, it won’t be listed. To get count of all tracked files in the repository, you need to navigate to the root directory of the repository.
git ls-files lists files in the index of the current folder:
# List tracked files
$ git ls-files
word count, it can be used to count bytes, words, or lines.
-l option is used to count lines.