This will be my first git use. I have added new files ( a lot ) to the folder/project ( git local repository).
I went through online tutorials and forums and see i can do
git commit -a So I go to the base folder of the repository and do a
sudo git commit -a But then, some screens comes up and asks me to add a comment which i do. i do not know how to proceed or exit. I do not want to mess up so i did ctrl + Z and did not do anything.
Can you guys please outline the commands I need to use?
git commit -a and
git push? 613 Answers
Use the git add command, followed by a list of space-separated filenames.
git add file-1 file-2 file-3 Include paths and .extensions, e.g.
git add images/logo.png scripts/app.js 3To add all the changes you've made:
git add .
To commit them:
git commit -m "MY MESSAGE HERE" #-m is the message flag
You can put those steps together like this:
git commit -a -m "MY MESSAGE HERE"
To push your committed changes from your local repository to your remote repository:
git push origin master
You might have to type in your username/password for github after this. Here's a good primer on using git. A bit old, but it covers what's going on really well.
4As some have mentioned a possible way is using git interactive staging. This is great when you have files with different extensions
$ git add -i staged unstaged path 1: unchanged +0/-1 TODO 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> If you press 2 then enter you will get a list of available files to be added:
What now> 2 staged unstaged path 1: unchanged +0/-1 TODO 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb Update>> Now you just have to insert the number of the files you want to add, so if we wanted to add TODO and index.html we would type 1,2
Update>> 1,2 staged unstaged path * 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html 3: unchanged +5/-1 lib/simplegit.rb Update>> You see the * before the number? that means that the file was added.
Now imagine that you have 7 files and you want to add them all except the 7th? Sure we could type 1,2,3,4,5,6 but imagine instead of 7 we have 16, that would be quite cumbersome, the good thing we don't need to type them all because we can use ranges,by typing 1-6
Update>> 1-6 staged unstaged path * 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html * 3: unchanged +5/-1 lib/simplegit.rb * 4: unchanged +5/-1 file4.html * 5: unchanged +5/-1 file5.html * 6: unchanged +5/-1 file6.html 7: unchanged +5/-1 file7.html Update>> We can even use multiple ranges, so if we want from 1 to 3 and from 5 to 7 we type 1-3, 5-7:
Update>> 1-3, 5-7 staged unstaged path * 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html * 3: unchanged +5/-1 lib/simplegit.rb 4: unchanged +5/-1 file4.html * 5: unchanged +5/-1 file5.html * 6: unchanged +5/-1 file6.html * 7: unchanged +5/-1 file7.html Update>> We can also use this to unstage files, if we type -number, so if we wanted to unstage file number 1 we would type -1:
Update>> -1 staged unstaged path 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html * 3: unchanged +5/-1 lib/simplegit.rb 4: unchanged +5/-1 file4.html * 5: unchanged +5/-1 file5.html * 6: unchanged +5/-1 file6.html * 7: unchanged +5/-1 file7.html Update>> And as you can imagine we can also unstage a range of files, so if we type -range all the files on that range would be unstaged. If we wanted to unstage all the files from 5 to 7 we would type -5-7:
Update>> -5-7 staged unstaged path 1: unchanged +0/-1 TODO * 2: unchanged +1/-1 index.html * 3: unchanged +5/-1 lib/simplegit.rb 4: unchanged +5/-1 file4.html 5: unchanged +5/-1 file5.html 6: unchanged +5/-1 file6.html 7: unchanged +5/-1 file7.html Update>> 3You can also select multiple files like this
git add folder/subfolder/* This will add all the files in the specified subfolder. Very useful when you edit a bunch of files but you just want to commit some of them...
1If you want to add multiple files in a given folder you can split them using {,}. This is awesome for not repeating long paths, e.g.
git add long/path/{file1,file2,...,filen} Beware not to put spaces between the ,.
Simply use single quotations around each file name to ensure any with spaces work as expected
git add 'file1' 'file2' 'file3' When you change files or add a new ones in repository you first must stage them.
git add <file> or if you want to stage all
git add . By doing this you are telling to git what files you want in your next commit. Then you do:
git commit -m 'your message here' You use
git push origin master where origin is the remote repository branch and master is your local repository branch.
2👉 step1.
git init 👉 step2.
a) for all files
git add -a b) only specific folder
git add <folder1> <folder2> <etc.> 👉 step3.
git commit -m "Your message about the commit" 👉 step4.
git remote add origin 👉 step5.
git push -u origin master git push origin master if you are face this error than
! [rejected] master -> master (fetch first) error: failed to push some refs to ' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 👉 Use this command
git push --force origin master To add all the changes you've made:
git add . To add single folder:
git add directory path To add multiple folders:
git add folder1 folder2 folder3 foldern To commit all the changes:
git commit -m "message" To push your committed changes from your local repository to your remote repository:
git push origin branch name 1It sounds like git is launching your editor (probably vi) so that you can type a commit message. If you are not familiar with vi, it is easy to learn the basics. Alternatives are:
Use
git commit -a -m "my first commit message"to specify the commit message on the command line (using this will not launch an editor)Set the
EDITORenvironment variable to an editor that you are familiar with
If you want to stage and commit all your files on Github do the following;
git add -A git commit -m "commit message" git push origin master Try this:
git add file1 git commit file1 git push git add file2 git commit file2 --amend git push Note: git commit without -m option will open an editor for your commit message.
I use the command: git add *CMakeLists.txt, in order to add all the CmakeLists.txt files across the sub-directories:
z:\Temp\proj_I2.21.09.24\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\t1\src\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\VV\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\Executable\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\tools\TAF\Recording\CMakeLists.txt
z:\Temp\proj_I2.21.09.24\Design\original\CMakeLists.txt
