How Can We Help?

Using GitHub – Git Commands

You are here:
< All Topics

A git repository or repo is an online store for your code. After you push your files from your local repo to your remote git repo it means there is a copy of them held offsite at a remote location.


So if you change your local files, the remote versions don’t change until you ‘commit’ your local changes and then ‘push’ them to the remote git repo.


The examples below use the GitHub service, but there are many others such as GitLab and bitbucket. Alternatively you may use your own git repository on a server maintained on your own premises.


The remote git repository can also be cloned by other team members so they can also contribute to the code maintained in the repo.


Using GitHub


You need to make sure the remote url for the remote Git repo exists in your GitHub account, and to do this you need to first create a new repository, for example called AnsibleLab.


The GitHub account url will be something like, for this example:


KevWellsLinux being the account name.


And the repository, in this example called AnsibleLab, will have a unique url, for example


Note that a repository can have multiple “remotes” but usually you will only use one.


Note also that Git is case-sensitive so beware of accidentally creating multiple undesired remotes!


For example, if you were to run the command


git remote add origin


and then run the command


git remote add ORIGIN


the result will be two new remotes, one called origin and the other called ORIGIN.


ORIGIN is just a simple name for the url of a remote Git repository.


When you clone a repository using git clone, it automatically creates a remote connection called ORIGIN linking back to the cloned repository and called ORIGIN by default.


For many Git commands many details are presumed. Thus in most instances you don’t need to actually specify ORIGIN since it’s presumed that it’s the name of your remote repo.


This means that all of the following commands are actually identical in effect:


git fetch ORIGIN
git fetch https://remote.repo.url
git fetch


Thus when you enter:


git fetch


– the ORIGIN part for git fetch is presumed.


If you had renamed your remote repo to for example MYREMOTEREPO then you would need to enter:





How to set the remote Git repository


You use the git remote add command when a remote repo with the name specified does not yet exist.


However, if there is already a remote with the name specified, this will generate an error.


In this case you need instead to run git set-url.


For this you specify:


A remote name, eg: ORIGIN

A remote URL, eg:


Thus to set the ORIGIN in git, you would enter:


git remote add ORIGIN


This then links your local repo to the remote github repo at the address you just specified. You can then push your changes from the local repo to the remote git repo.


To display the name of your remote repo or the git origin, use:


git remote


To display the full url of ORIGIN, use:


git remote -v


for example:


kevin@asus:/media/kevin/STORAGEVOLUMELUKS/DATAVOLUME/ANSIBLECODE$ git remote -v
origin (fetch)
origin (push)



To change the remote url use git remote set-url


The git remote set-url command changes the url of the remote git repo – ie ‘git change remote origin’. As with the git remote add command, git remote set-url takes 2 commands:


– an existing remote name, eg: origin or myremote


– a new URL for the remote. For example



To check if your current folder is already a git repo, use:


git status



To create a repo with your current folder in which you are located, use:


git init



GitHub push commands


Here are the Git commands for pushing an existing project to GitHub.


These commands perform a push to a GitHub repo named KevWellsLinux/AnsibleLab.git, owned by GitHub user named KevWellsLinux (kevin on local host):


git init
git add .
git commit -m “Add existing project files to Git”
git remote add origin
git push -u -f origin master




How to create a new GitHub repository on the command line


 Basically what you do to push a new project to an existing GitHub repository is:



Create a GitHub repository for an existing project.
Copy the GitHub URL for the new git repository to the clipboard.
Perform a git init command in the root directory of the existing project.
Add all of the existing project files to the Git index and then run a commit.
Add the GitHub repository as a remote reference for the existing project.
Perform a git push using the -u and -f switches.
Verify the existing project files have now been pushed to GitHub.




echo “# AnsibleLab” >>
git init
git add
git commit -m “first commit”
git branch -M main
git remote add origin
git push -u origin main



How to initialize Git in an existing project


If an existing project does not already use Git, you issue a git init command in the root folder.


After the repository is initialized, you then add all of the project files to the Git index and then perform a commit followed by a push:


git add .
git commit -m “Add existing project files prior to the push to GitHub.”


git remote add origin
git branch -M main
git push -u origin main



How to add files to git


cd root@asus:/home/kevin/LOCAL/WORK/AnsibleLab


git add inventory.yaml
git commit -m “added inventory.yml”
git branch -M main


you only need this when creating a new git:


git remote add origin


then finally do:

git push -u origin main



kevin@asus:~/LOCAL/WORK/AnsibleLab$ git add AnsibleLabNOTES
kevin@asus:~/LOCAL/WORK/AnsibleLab$ git commit -m “added AnsibleLabNOTES”
[main 61729d0] added AnsibleLabNOTES
1 file changed, 488 insertions(+)
create mode 100644 AnsibleLabNOTES
kevin@asus:~/LOCAL/WORK/AnsibleLab$ git branch -M main
kevin@asus:~/LOCAL/WORK/AnsibleLab$ git remote add origin
error: remote origin already exists.
kevin@asus:~/LOCAL/WORK/AnsibleLab$ git push -u origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 5.30 KiB | 5.30 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
b1e3ea2..61729d0 main -> main
Branch ‘main’ set up to track remote branch ‘main’ from ‘origin’.

Table of Contents