'git: list new files only
When I do a git status I get a list of files prefixed with new file: . How can I get only this list? I want to process this files in a simple loop in a little shell script.
Solution 1:[1]
The commands below no longer give the expected results, I may originally also have made some mistakes. Please double-check your output and the options you are using. Nevertheless: The basic tenet of using diff-filter should still hold true.
Don't use grep to parse git output. Git almost certainly has the things you are looking for built-in (except if you are going for really advanced stuff).
You can use git diff to show the changes. --name-only shows only the filenames. --diff-filter=A lists only the added files.
If you want to see new files you have already added to the index use --cached, otherwise omit it. To see both diff to HEAD.
The commands look like this:
git diff --name-only --diff-filter=A --cached # All new files in the index
git diff --name-only --diff-filter=A # All files that are not staged
git diff --name-only --diff-filter=A HEAD # All new files not yet committed
Solution 2:[2]
You can use git status --short to get the list of files.
Solution 3:[3]
Instead of parsing the output of "git status", it is probably more elegant to use
git ls-files -o --exclude-standard
As with git status, ls-files will produce output relative to your currrent working directory.
You may wish to include the --full-name option:
git ls-files -o --exclude-standard --full-name
Solution 4:[4]
List of new files or to get files to be added to git, can be got using git status and grep command like git status -s | grep ??
root@user-ubuntu:~/project-repo-directory# git status -s | grep ??
?? src/.../file1.js
?? src/.../file2.js
?? src/.../file3.js
....
Solution 5:[5]
git status | grep "new file:" | cut -c 14-
git status | grep "modified:" | cut -c 14-
Solution 6:[6]
To list All new files that is not added before to git project, you can use this command
git ls-files -o
The -o option is shorthand for --others
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | vpatil |
| Solution 3 | Keith Hanlan |
| Solution 4 | SuperNova |
| Solution 5 | Sagar V |
| Solution 6 | Eng_Farghly |

