My web designer often needs helps working with Git. Here's what I usually tell him.

Set-up Git

Create a new git repository

 git init

Establish git username and password

 git config user.name 'your user name'
 git config user.email 'your e-mail'

Review the changes you've made.

 git status

Add all changes to the repository

 git add -A

Commit to git

 git commit -m 'explination of what you've done'

Publish

 git push

Using Git branches for sprints

Here's how to use branches for sprints.


Stash

Stash is a way for temporarily holding area for changes that are not ready to commit to a branch but you don't want to lose.

Stash a bunch of changes.

git stash

Show all stashed files

git stash list

Delete all items from a stash list

git reset --hard HEAD

Return the stashed files to their original place.

git stash apply 

This takes the top item off of stash, applies it to the working copy and removes the item from stash list.

git stash pop

Add your stash files to their own branch name.

git stash branch name_of_branch

Cherry Picking

Git allows you to get one, single commit and apply it through cherry-pick.

First go to your master branch

git checkout master

Review which commit you want to apply.

git log

Add it

git cherry-pick 5dcxxxCOMMITxnumber

Extras

Log Count

Count how many commits have been submitted (line-by-line) using the word count function.

git log --oneline | wc -l

Contributors

List out the authors of each commit and their info. Filter by summary, number of commits and their e-mail addresss.

git shortlog -sne

Remote Branches

Review remote branches.

 git branch -r

Add an Alias

This is an example of a sophisticated git command. This command shows a list of all commits within a branch. Visualize all the branches –through ––all option. The decorate ––decorate option applies labels (such as HEAD, tag, etc) to the commits.

git log --graph --oneline --all --decorate

This command can be given an alias like this:

git config --global alias.name_of_alias "log --graph --oneline --all --decorate"