The following answer only applies to Git version 1.x, but to Git version 2.x.
You want git add -A
:
git add -A
stages All;
git add .
stages new and modified, without deleted;
git add -u
stages modified and deleted, without new.
This is my alternative (in any bash):
$ git status -s|awk '{ print $2 }'|xargs git add
To reset
$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
For newer version of Git.
I tried git add -A
and this prompted,
warning: The behavior of 'git add --all (or -A)' with no path argument from a subdirectory of the tree will change in Git 2.0 and should not be used anymore. To add content for the whole tree, run:
git add --all :/ (or git add -A :/)
To restrict the command to the current directory, run:
git add --all . (or git add -A .)
With the current Git version, the command is restricted to the current directory.
Then I tried below which worked.
git add --all :/
I authored the G2 project, a friendly environment for the command line git lover.
Please get the project from github - G2 https://github.com/orefalo/g2
It has a bunch of handy commands, one of them being exactly what your are looking for: freeze
freeze - Freeze all files in the repository (additions, deletions, modifications) to the staging area, thus staging that content for inclusion in the next commit. Also accept a specific path as parameter
Try:
git add -A
Warning: Starting with git 2.0 (mid 2013), this will always stage files on the whole working tree.
If you want to stage files under the current path of your working tree, you need to use:
git add -A .
Also see: Difference of git add -A
and git add .
git add --all
or git add -A
or git add -A .
Stages All
git add .
Stages New & Modified But Without Deleted
git add -u
Stages Modified & Deleted But Without New
git commit -a
Means git add -u
And git commit -m "message"
After writing this command follow these steps:-
git add <list of files>
add specific file
git add *.txt
add all the txt files in current directory
git add docs/*/txt
add all txt files in docs directory
git add docs/
add all files in docs directory
git add "*.txt"
or git add '*.txt'
add all the files in the whole project
Try
git add -u
The "u
" option stands for update. This will update the repo and actually delete files from the repo that you have deleted in your local copy.
git add -u [filename]
to stage a delete to just one file. Once pushed, the file will no longer be in the repo.
Alternatively,
git add -A .
is equivalent to
git add .
git add -u .
Note the extra '.' on git add -A
and git add -u
Warning: Starting with git 2.0 (mid 2013), this will always stage files on the whole working tree.
If you want to stage files under the current path of your working tree, you need to use:
git add -A .
Also see: Difference of git add -A
and git add .
I'm not sure if it will add deleted files, but git add .
from the root will add all untracked files.
From Git documentation starting from version 2.0:
To add content for the whole tree, run:
git add --all :/
or
git add -A :/
To restrict the command to the current directory, run:
git add --all .
or
git add -A .
I use the following line to add for staging all the modified and newly created files, excluding the ones listed in .gitignore:
git add $(git ls-files -mo --exclude-standard)
(the syntax $() is for the bash shell). I guess that the command line option -mod should add also the deleted files... Or, if you have file names with embedded blanks, the following one-liner should do the trick:
git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Source: Stackoverflow.com