Reputation: 2293
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?
Upvotes: 206
Views: 523130
Reputation: 12708
Add individual files to your Git staging area using the git add
command, followed by a list of space-separated filenames, which can include both file paths and extensions. For instance:
git add scripts/app.js images/logo.png
To streamline this process, Git offers the wildcard character asterisk *
, which matches multiple files. For example, to add all files in your repository (excluding those in your .gitignore file):
git add *
For finer control, you can specify files by extension, like this:
git add *.jpg
Or to add all files within a specific folder:
git add images/*
Upvotes: 579
Reputation: 21
git add fil1 file2 -- File names are separated with space
git add *.java -- add file with pattern
git add . -- Add entire directory recursively
Upvotes: -1
Reputation: 352
git init
a) for all files
git add -a
b) only specific folder
git add <folder1> <folder2> <etc.>
git commit -m "Your message about the commit"
git remote add origin https://github.com/yourUsername/yourRepository.git
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 'https://github.com/harishkumawat2610/Qt5-with-C-plus-plus.git'
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
Upvotes: 6
Reputation: 574
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
Upvotes: 1
Reputation: 1
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.
Upvotes: 0
Reputation: 491
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
Upvotes: 4
Reputation: 52198
Simply use single quotations around each file name to ensure any with spaces work as expected
git add 'file1' 'file2' 'file3'
Upvotes: 15
Reputation: 35
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
Upvotes: 1
Reputation: 12625
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 ,
.
Upvotes: 16
Reputation: 22852
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>>
Upvotes: 62
Reputation: 361
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...
Upvotes: 36
Reputation: 10997
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.
Upvotes: 163
Reputation: 992707
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
Upvotes: 1
Reputation: 115
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.
Upvotes: 4