GIT list of new/modified/deleted files

GitFileListDiff

Git Problem Overview


Is there a way to get the list of all new/deleted/modified directories/files in local/remote repository w.r.t each other in GIT ?

Git Solutions


Solution 1 - Git

The best way to list these file is using git status --porcelain

For example: To remove previously deleted files:

git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm

Solution 2 - Git

I'm not sure what you mean by with respect to each other, but if you want an individual listing (e.g. all modified files) you can use git ls-files with the right flags (for modified files it's -m). If you want all of this info at once, you can use git status --porcelain to get a script-parsable output of the status.

Solution 3 - Git

To get just file names and status of the currently changed files you can simply:

git diff --name-status

You will get the bare output like this:

M       a.txt
M       b.txt

Now, pipe the output to cut to extract the second column:

git diff --name-status | cut -f2

Then you'll have just the file names:

a.txt
b.txt

Solution 4 - Git

Use the dry-run (-n) option of git add:

git add -A -n

Solution 5 - Git

One way to do this is with the whatchanged command:

$ git whatchanged

This shows which files changed for each commit in the tree and can be used to look at specifics as well. Take a look at git help whatchanged

Solution 6 - Git

What you probably want is something like:

git fetch     # update what you know about the remote repo
git diff --name-status master origin/master

But it's pretty difficult to tell exactly what branches you want to diff from your question.

Solution 7 - Git

In my case I needed the list of all new/modified/untracked files. The below command did the trick:

git status --porcelain | cut -c 1-3 --complement

The cut -c 1-3 --complement part is for removing the three initial status characters so that I could run arbitrary scripts with xargs against the files. For instance, run eslint against all new/changed JavaScript files (in a nodejs repo):

git status --porcelain | cut -c 1-3 --complement | egrep .js$ | xargs npm run lint -- --fix

Solution 8 - Git

use with command --name-status

example with tags:

git diff v1.0.1 v1.0.2 --name-status

example with commits:

git diff b79810fc4d be69e41d1c --name-status

it will list all the updated files with their statuses: M - modified D - deleted A - added

Solution 9 - Git

Do git diff and you will see all the files changed and the details of what changed in those files

Solution 10 - Git

To git all files that your are added, modified deleted and new files you use two commands git ls-files -o to get all new files and git checkout for get delete files , modified files and added files >git ls-files -o && git checkout

How I know deleted, modified , deleted files and new files if you see before the file

  • A this is added file to git
  • D this is deleted file
  • M this is Modified file
  • Nothing before the file this is a new file

see this gif image get added, deleted, modified and 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
QuestionJeanView Question on Stackoverflow
Solution 1 - GitAlex SharapovView Answer on Stackoverflow
Solution 2 - GitLily BallardView Answer on Stackoverflow
Solution 3 - GitLeandroN.View Answer on Stackoverflow
Solution 4 - GitTrident D'GaoView Answer on Stackoverflow
Solution 5 - GitsparrowView Answer on Stackoverflow
Solution 6 - GitCascabelView Answer on Stackoverflow
Solution 7 - GitAlfeuView Answer on Stackoverflow
Solution 8 - GitOleksa O.View Answer on Stackoverflow
Solution 9 - GitSandeep AmarnathView Answer on Stackoverflow
Solution 10 - GitEng_FarghlyView Answer on Stackoverflow