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? 
6

13 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 
3

To 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.

4

As 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>> 
3

You 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...

1

If 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 ,.

2

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.

enter image description here

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 
1

It 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 EDITOR environment variable to an editor that you are familiar with

1

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy