GIT list of new/modified/deleted files
GitFileListDiffGit 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