Github Cheatsheet

·

4 min read

Introduction

Git is the most popular version control system (VCS) in the world and it's hard to imagine what a developer's life would be like without it. Nowadays, the vast majority of developers - including individuals and large companies - choose Git for their projects.

A List of Git Commands

Git Setup Create a new Git repository from an existing directory:

git init [directory]

Clone a repository (local or remote via HTTP/SSH):

git clone [repo / URL]

Clone a repository into a specified folder on your local machine:

git clone [repo / URL] [folder]

Git Configuration Attach an author name to all commits that will appear in the version history:

git config --global user.name "[your_name]"

Attach an email address to all commits by the current user:

git config --global user.email "[email_address]"

Apply Git’s automatic command line coloring which helps you keep track and revise repository changes:

git config --global color.ui auto

Create a shortcut (alias) for a Git command:

git config --global alias.[alias_name] [git_command]

Set a default text editor:

git config --system core.editor [text_editor]

Open Git’s global configuration file:

git config --global --edit

Managing Files Show the state of the current directory (list staged, unstaged, and untracked files):

git status

List the commit history of the current branch:

git log

List all commits from all branches:

git log --all

Compare two branches by showing which commits from the first branch are missing from the second branch:

git log [branch1]..[branch2]

Examine the difference between the working directory and the index:

git diff

Explore the difference between the last commit and the index:

get diff --cached

See the difference between the last commit and the working directory:

get diff HEAD

Display the content and metadata of an object (blob, tree, tag or commit):

git show [object]

Git Branches List all branches in the repository:

git branch

List all remote branches:

git branch -aa

Create a new branch under a specified name:

git branch [branch]

Switch to a branch under a specified name (if it doesn’t exist, a new one will be created):

git checkout [branch]

Delete a local branch:

git branch -d [branch]

Rename a branch you are currently working in:

git branch -m [new_branch_name]

Merge the specified branch with the current branch:

git merge [branch]

Making Changes Stage changes for the next commit:

git add [file/directory]

Stage everything in the directory for an initial commit:

git add .

Commit staged snapshots in the version history with a descriptive message included in the command:

git commit -m "[descriptive_message]"

Undoing Changes Undo changes in a file or directory and create a new commit with the git revert command:

git revert [file/directory]

Unstage a file without overwriting changes:

git reset [file]

Undo any changes introduced after the specified commit:

git reset [commit]

Show untracked files which will be removed when you run git clean (do a dry run):

git clean -n

Remove untracked files:

git clean -f

Rewriting History Replace the last commit with a combination of the staged changes and the last commit combined:

git commit --amend

Rebase the current branch with the specified base (it can be a branch name, tag, reference to a HEAD, or a commit ID):

git rebase [base]

List changes made to the HEAD of the local repository:

git reflog

Remote Repositories Create a new connection to a remote repository (give it a name to serve as a shortcut to the URL):

git remote add [name] [URL]

Fetch a branch from a remote repository:

git fetch [remote_repo] [branch]

Fetch a repository and merge it with the local copy:

git pull [remote_repo]

Push a branch to a remote repository with all its commits and objects:

git push [remote_repo] [branch]
Â