Basic/Advanced Git commands

Git – version control, the best thing since sliced bread. Right? I can’t imagine my life without a version control system in place. I know millions work with Git these days so decided to write up a simple post on some useful commands.

I won’t go into how it all works, well maybe just a little bit. So basically git tracks references to changes from the main branch such as ‘master’.

List of basic commands:

git diff # show diff of all changed and uncommitted files.

git add <file> # Stage changes from a file.

git diff --cached # Show diff of all staged files.

git checkout <file> # Revert back to original content from the branch you are on.

git branch # show list of branches available locally.

git branch <branch name> # Create a branch

git branch -d <branch name # Delete a local branch (safe)

git branch -D <branch name # Delete a local branch (unsafe)

git checkout <branch> # Switch to another branch.

git commit -m <commit msg> # Commit your changes to the branch.

git reset <file> # Reset/unstage change.

git push # push changes to the remote repo. (create branch if not already exists)

git pull # pull changes from the remote repo.

git merge <branch> # Merge a branch into the branch you’re on.

git tag <tag version> # Create a hard reference to your commit hash represented by a tag.

git push --tags # Push all tags to remote repository.

More advanced commands:

git checkout <branch> <file> # Checkout changes for file from another branch.

git reset --hard HEAD~1 # Revert a local merge. (if its the last thing you’ve done)

git push origin <branch> --force # Force re-write of commit history as per your local version.

git rebase <commit hash> # Rewrite commit history up until the commit hash provided.

git rebase --abort|--skip # Abort or skip the rebase change.

git branch -u origin/<branch> # Set tracking to a remote branch. (if exits)

git commit -am "<commit msg"> # Add files and commit changes in one go.

git stash # Stash uncommitted changes temporarily.

git stash apply # Re-apply the stashed changes.

git stash list # Show list of stashed changes.

git diff <branch> <file> # Show diff of file against another branch.

There are lots more! But I have found that these cover the bulk of my work!

Leave a Reply