13

My usual git workflow is

<make changes>
git add FILES
git status
git commit -m "some remarks"

where I need the git status just to check if I added the correct files.

Is there a way to tell git to automatically display the status after each git add?

1
  • You could probably create an alias that executes add first, and then status. E.g. git config --global alias.ad "!git add $1; git status", but I’m not sure if you can keep supporting all the add parameters that way. Commented Jul 31, 2013 at 11:34

4 Answers 4

15

When run with -v (verbose) option, git add outputs the name of files that were added:

» git add -v hello?
add 'hello1'
add 'hello2'
Sign up to request clarification or add additional context in comments.

Comments

13

You can use an alias:

[alias]
    gitadd = !sh -c 'git add -- "$@" && git status' --

make changes
$ git gitadd FILES
$ git commit -m "some remarks"

Since git aliases work from the repository root1, you could modify the alias to make it work from any other directory:

[alias]
    gitadd = !sh -c 'cd "$1" && shift && git add -- "$@" && git status' -- 

Now invoke it by saying

git gitadd $PWD file1 file2 ...

1: Note that shell commands will be executed from the top-level directory of a repository, which may not necessarily be the current directory.

7 Comments

it would be git gitadd with that alias, imho
@devnull I added the above lines to ~/.gitconfig but when typing git gitadd somefile it says Nothing specified, nothing added. Maybe you wanted to say 'git add .'?
@flonk That's odd. What if you say $* instead of $@ in the alias.
@devnull Ooops, unfortunately it only works on the repository's root folder. i.e. git gitadd somedir/somefile works, but git gitadd somefile from inside somedirfails telling me fatal: pathspec 'somefile' did not match any files
@flonk Figured a workaround. Modify the alias to gitadd = !sh -c 'cd $1 && shift && git add -- "$@" && git status' -- and invoke it by saying git gitadd $PWD file1 file2 ....
|
3

Here's what I have using the answer at https://stackoverflow.com/a/26243454 and combining it with devnull's answer:

[alias]
    sadd = !sh -c 'cd -- ${GIT_PREFIX:-.} && git add -- "$@" && git status' --

This way you don't need to pass in the working directory manually.

Comments

0

You can do it via creating an alias that executes add first and then status using git config commnad ..

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.