Git is the undisputed king of source code management! However, it can be a little daunting for new users, especially as most developers and online guides favour the command line.

Thankfully, there are a set of common commands that cover 80% of my standard workflow.

User Setup

Setting your username and email.

git config --global user.name "<name>"  
git config --global user.email "<email>"  


Basic

Initialising your repository, updating the index, record changes and pushing to the remote.

git init  
git add .  
git commit -m "Initial Commit"  
git push origin <branch>  


Clone

Clone a repository into a new directory.

git clone <repo_url>  
git clone -b <branch> <repo_url>  
git checkout -b <branch> origin/<branch>  


Remote Setup

Manage set of tracked repositories.

git remote  
git remote add origin <repo_url>  
git remote -v  
git remote rm origin  


Pull

Fetch from and integrate with another repository or a local branch.

git pull https://github.com/teamname/reponame.git  
git pull https://github.com/teamname/reponame.git <branch>  
git pull origin <branch>  


Branching

Branching is a powerful way to manage your code, I highly recommend following a branching methodology such as Git Flow.

git branch  
git branch <branch>  
git checkout <branch>  
git checkout -b <branch>  
git branch -m <newname>  
git branch -d <branch>  


Merging

Join two or more development histories together.

git merge <branch>  


Tagging

Tag specific points in history.

git tag TAG_01  
git push origin --tags  


Lines of Code

Show lines of code in the active branch.

git ls-files | xargs wc -l  


Ignored Files

Show files that are ignored by Git.

git status --ignored  


Remove .DS_Store

If you work on a Mac, you will probably also have pesky .DS_Store files cluttering up your repository. To remove them run the following command (don’t forget to also add .DS_Store to your “.gitignore” file.

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch  


GitHub Chunked Issue

If you recieve the error “POST git-receive-pack (chunked)” when pushing code to GitHub or the push simply fails (hangs), run the following command. This should resolve a known chuncked encoding bug in Git, when using HTTPS.

git config http.postBuffer 524288000


If you’re unsure about any of these commands, I suggest you head over to the official Git documentation or Git online training.