git: list new files only

GitStatus

Git Problem Overview


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.

Git Solutions


Solution 1 - Git

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 - Git

You can use git status --short to get the list of files.

Solution 3 - Git

I would use something like git status --porcelain | grep "^A" | cut -c 4-

Solution 4 - Git

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 5 - Git

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 6 - Git

git status | grep "new file:" | cut -c 14-

git status | grep "modified:" | cut -c 14- 

Solution 7 - Git

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

see this gif image list new files in git

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBetaRideView Question on Stackoverflow
Solution 1 - GitandsensView Answer on Stackoverflow
Solution 2 - GitvpatilView Answer on Stackoverflow
Solution 3 - GitRom1View Answer on Stackoverflow
Solution 4 - GitKeith HanlanView Answer on Stackoverflow
Solution 5 - GitSuperNovaView Answer on Stackoverflow
Solution 6 - GitRaviv ShweidView Answer on Stackoverflow
Solution 7 - GitEng_FarghlyView Answer on Stackoverflow