Is it possible to have git status
only show the modified files due, in my case, to having too many staged files?
git status
will invoke the pager.
--short
or --porcelain
to get one-line versions of the status.
git ls-files -m
: which modification(s) do you care about, staged, unstaged, or both?
You can't do this with git status
, but you could use git ls-files -m
to show all modified files.
It looks like git status -uno
will show you only files that git is tracking, without showing anything else in the directory. Not exactly what you asked for, but perhaps accomplishes the same thing (getting a readable-length list of files that git tracks).
git status -u no
does not show (1) tracked files which are modified, nor (2) tracked files which are staged. I've verified this with git versions 1.8.5.2 and 1.9.4.
git status -uno
(stackoverflow.com/questions/7008546/…)
For modified files:
git status | grep modified:
git config --global alias.modified '!git status | grep modified:'
git status -s | awk '{if ($1 == "M") print $2}'
awk '$1 == "M" { print $2 }'
git diff --name-only --diff-filter=M
git diff --cached --name-only --diff-filter=ACMR
which does Added, Copied, Modified and Renamed files.
git diff --name-only
works too.
You can use
$ git status -uno
to list only modified files.
I was looking for the same info and found following gives modified files:
git status -uno
git status -uno --porcelain
adds nice output for parsing script
To list the modified files use:
git ls-files -m
If you want just the basename (no path) then you can pipe each result to the basename command using xargs, line by line:
git ls-files -m | xargs -L 1 basename
The problem is i have too many staged files that i don't want to commit or gitignore at the moment and i can't scroll up.
While this may not directly answer the question of listing only modified files, it may help limit the number of files that are listed.
You can pass a path to git status
to limit the output to a specific folder in the repo.
For example:
git status app
git status spec
git status src/components
I use this command :
$ git status -sb -uno | grep -v "^\sD\s"
And the output looks like this :
## master...origin/master
M GNUmakefile
M include/mp4v2/project.h
\M
git status -uno -sb | grep M\
Update
open the .gitconfig
[user]
name = ...
email = ...
[alias]
# 👇 add below code
mySt = "!f() {\
inputType=${1:-" "};\
git status -s | grep "\\ $inputType" |\
sed -e 's/ / /' ;\
}; f"
explain: https://stackoverflow.com/a/62772985/9935654
usage
git mySt M : show modified: git mySt M *.md : Show all *.md, which was modified. git mySt D : deleted: git mySt : same as the git status -s
OS: windows
The following command will display all lines containing "modified:", "renamed:" or "new file:"
git status | findstr "modified: renamed: new file:"
If you want to specified file type: (for example *.py
*.ini
)
git status *.py *.ini | findstr "modified: renamed: new file:"
If you think it’s too much trouble typing so much:
create a batch file (for example: st.bat) write contents as following: @echo off :: st.bat (this line doesn't necessarily. ( just let you know the scripts name.)) git status %~1 | findstr "modified: renamed: new file:" add environment path which contains your batch file. (st.bat) usage st.bat "*.py *.ini" (note: if type > 1 then must add the semicolon)
OS: LINUX
as @Lance says you can try
git status | grep modified:
One alternative is to have the results on a single line via -s
which can limit what is being shown.
git status -s
https://i.stack.imgur.com/hy0jq.png
Shown under windows Terminal with Powerline/Posh git.
This command is so handy in that I added it as an alias used as git stati
[alias]
stati = !git status -s
I use git cola
. Its a simple and elegant UI client that will show you the modified files and provide you with a diff like shot of the changes you made.
git cola
provides you with a GUI where you can visualize which files you modified, which you staged, and even those you don't track. Your question was to use git status only I believe, but I thought git cola can help when that and other things as well. Check this web page from more info: git-cola.github.com/screenshots.html
To list all modified files use:
git show --stat --oneline HEAD
All great answers; just FEI, "git checkout " (switching to or in the same branch) appears to show only modified files.
If you want to list the modified files, you could do this:
git log -n1 --oneline --name-status | grep '^M'
Success story sharing
git status | grep modified
just as user23186 indicates in their answer.git ls-files -m
is not showing anything butgit status | grep modified
is working.git diff --name-only --diff-filter=M HEAD
would show just modified files for both staged and unstaged, though you should check the docs on--diff-filter
to see what other filter types you might want to add.