/cli-Intro-to-Git

Introduction to git using Bash in 60 seconds or less

GNU General Public License v2.0GPL-2.0

Cli-Intro-to-Git

Introduction to git on the command line in 60 seconds or less

Type these commands directly into bash your terminal, shell, command line interpreter, whatever you want to call it [tested in bash, sh, and zsh ymmv]

pwd
cd /tmp
pwd
mkdir git
cd git
pwd
git init
echo 'my test' >test1
ls
git status
git add test1
git status
git commit -am 'initial add of test1'
git log
echo 'second test' >>test1
git status
echo 'second test file'>test2
git status
git commit -am 'second test'
git log

WTF?!?!

Ok so that was git in 60 seconds. What just went on? Let me be a bit more verbose with an intro of some very basic commands with a basic explanation after:

pwd

^ Print Working Directory (the "you are here" of unix land)

mkdir

^ make directory/folder

cd

^ change directory (this is how you 'move' around the file system

ls

^ list the current directory i.e. show me what is in the current folder

man

^ “manual” gives the manual page for any command i.e. man ls will give the manual page for ls

man git

^ At some point you'll feel confident enough to just pull this page up for reference, not just yet

Learning what is going on

you should type all these commands into your command prompt like learning a new language it's best for you to actually speak (type) the words and see the resulting output, it's very satisfying to see your creation take life let's see those first commands again with some comments to explain what's going on

explanations

pwd

^ pwd should print the path to your home directory at the moment by default this is where you usually start when opening a shell

cd /tmp

^ change directory to /tmp

(/tmp is a great place for temporary stuff, careful this place is erased upon reboot)

pwd

^ prove to me that we changed directories (i.e. it should now print /tmp)

mkdir git

^ make a new directory named ‘git’

cd git

^ change into the git directory

pwd

^ now displays /tmp/git

git init

^ initialize /tmp/git into a git repo

echo 'my test' >test1

^ overwrite or make a new file called test1 and makes its contents read ‘my test’

ls

^ show me this new file

cat test1

^ dumps the contents of the file which should be ‘my test’

git status

^ have git tell us of any changes in the current directory

git add test1

^ add our new file to gits tracking system

git status

^ show us that the new file has now been added

git commit -am 'initial add of test1'

^ make a commit and give it a nice message explaining what is going on

git log

^ show us a log of the history of this git repo

echo 'second test' >>test1

^ make a second line in our first test file

git status

^ show us which files have changed

echo 'second test file'>test2

^ make a second test file

git status

^ again show us which files have changed

git diff

^ show us the changes

git commit -am 'second test'

^ commit those changes

git log

^ show us a log of the history of this git repo

Permanent home for git

Okay from here let’s make a git directory in our home and start cloning repos from a git repo

cd

^ given no arguments cd will take you home

pwd
mkdir git

^ there is no output for this command

cd git

^ again no output on this command so long as there are no errors but let's prove to ourselves that we changed directories with pwd

pwd

Creating your own repo

Let’s get you your own repo and make a static page

If you don’t have a github account get one it’s free

now make a new repo, first let’s make sure we are in our git directory in the home folder

cd ~/git

ok now let's clone that repo! There is a link in the bottom righthand corner copy it then git clone that link

here’s an example of what it might look like:

git clone https://github.com/YOURGITHUBID/YOURREPO.git

the output should look something like this:

Cloning into 'YOURREPO'...
remote: Counting objects: 331, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 331 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (331/331), 3.65 MiB | 483.00 KiB/s, done.
Resolving deltas: 100% (43/43), done.
Checking connectivity... done.

now cd into that repo

cd YOURREPO

make a new readme and add it to git as a tracked file, commit, then push it back up to github

echo ‘# Howdy folks!’>README.md

^ echo is an easy way to add a line to a file, or in this case overwrite the file (which is the difference between > and >>, but I’ll save the rest of that lecture for a tutorial on STDIN STDOUT and STDERR redirection and piping!)

git add README.md

^ add the README file to git

git commit -am “added new README.md”

^ make a new commit in git

git push origin master

^ push it all back up to github (or whatever your origin is set to)

now click on the ‘settings’ page for your repo, in there is large button labeled “Launch Automatic Page Generator”, on the resulting page click “Load README.md”, then click “Continue to Layouts” in the bottom right hand corner, choose a layout and save your static site, your new site is now available at an address like this one:

http://YOURGITHUBID.github.io/YOURREPO

Congratulations you now have a static site!