Is it necessary to run git add . command because running git commit -m "push" and then git push command can also push our code to the remote repository without running git add . command?
- 
                    1git add is only relevant in terms of what you will _commit_ into the revision you will create. When pushing, it has _no relevance_ because what will be pushed is what **is** the revision/revisions of a branch. Now, you can skip using `git add` if you mean to commit everything in a given moment (like `git commit -a -m "committing everything"`) but that's not the way you will want to work in the long run. I could decide to commit only some of the files that I have modified at a given moment in time.... or even **a section** of a modified file... and then you will want to use `git add`). – eftshift0 Aug 10 '22 at 11:48
- 
                    Also `git add .` only adds files from the current folder, so you will not always have this special case of adding. – YesThatIsMyName Aug 10 '22 at 11:49
- 
                    Again, you are free to skip using the staging area.... I am not saying otherwise.... but in the long run, you will want to take advantage of it. – eftshift0 Aug 10 '22 at 11:50
2 Answers
To answer your question: yes, it is necessary to stage changes/files before you (1) commit and then (2) push them, otherwise they will not be pushed to the remote repository.
It is wrong that running git commit -m "push" and then git push command can also push your code to the remote repository without running git add ..
git add expects a list of files as a parameter. The . in git add . just says stage all current changes from the current folder.
 
    
    - 1,585
- 3
- 23
- 30
git add . - stages all edits from the current directory (that's what . stands for) 
git commit -m "push' - commits all files you've staged with the message (that's what (-m) stands for) "push" 
git push - pushes the commits you've added to the remote repository 
- It is necessary to specify what files you want to addbeforecommitting, otherwisegitwould not know what modifications you want to save.
- If you want to add all files and commit using a single command use git commit -am(note that this shorter command will not stage untracked files (a new class for example)))
EDIT: Make sure to check @eftshift0 's comments for further explanation
 
    
    - 147
- 1
- 11
