cloudcreatordotio
2/5/2020 - 9:07 PM

Git Cheat Sheet

Cheat Sheet for Common Git commands

Git Cheat Sheet

http://www.git-tower.com/learn

http://rogerdudler.github.io/git-guide/

http://www.git-scm.org/

GIT CONFIG

Get an existing config

git config --get user.email

Config for a single repo

git config user.email "email@sample.com"

Config for global

git config --global user.name "sample name"

CREATE

Clone an existing repository

git clone ssh://user@domain.com/repo.git

Create a new local repository

git init

LOCAL CHANGES

See file changes in your working directory

git status

See changes to tracked files

git diff

Add all current changes to the next commit

git add .

git add *

git add *.php

Add some changes in to the next commit

git add -p <file>

Commit all local changes in tracked files

git commit -a

###Commit previously staged changes

git commit -m "your commit message"

Change the last commit

!! Don‘t amend published commits !!

git commit --amend

COMMIT HISTORY

Show all commits, starting with newest

git log

Show changes over time for a specific file

git log -p <file>

Who changed what and when in

git blame <file>

BRANCHES & TAGS

Check out a remote branch locally

git fetch -av

git checkout -b branch_name remote_branch_name

(e.g. git checkout -b feature-amp-style-fixes origin/feature-amp-style-fixes)

List all existing branches

git branch -av

Switch HEAD branch

git checkout <branch>

Create a new branch based on your current HEAD

git branch <new-branch>

Create a new tracking branch based on a remote branch

git checkout --track <remote/branch>

Delete a local branch

$ git branch -d <branch>

Mark the current commit with a tag

git tag <tag-name>

To delete a local branch

git branch -d the_local_branch

To remove a remote branch (if you know what you are doing!)

git push origin :the_remote_branch

or simply use the new syntax (v1.7.0)

git push origin --delete the_remote_branch

UPDATE & PUBLISH

List all currently configured remotes

git remote -v

Show information about a remote

git remote show <remote>

Add new remote repository, named

git remote add <shortname> <url>

Download all changes from , but don‘t integrate into HEAD

git fetch <remote>

Download changes and directly merge/integrate into HEAD

git pull <remote> <branch>

Publish local changes on a remote

git push <remote> <branch>

Delete a branch on the remote

git branch -dr <remote/branch>

Publish your tags

git push --tags

MERGE & REBASE

Merge into your current HEAD

git merge <branch>

Rebase your current HEAD onto

Don‘t rebase published commits!

git rebase <branch>

Abort a rebase

git rebase --abort

Continue a rebase after resolving conflicts

git rebase --continue

Use your configured merge tool to solve conflicts

git mergetool

Use your editor to manually solve conflicts and (after resolving) mark file as resolved

git add <resolved-file>

git rm <resolved-file>

SUBMODULES

Add a Git Submodule to a project

git submodule add https://github.com/cloudcreatordotio/name-of-plugin /wp-content/plugins/name-of-plugin

After pulling changes to the master branch, Update the git submodules for a git project.

git submodule update --init --recursive

Clone a repo with submodules

git clone --recurse-submodules https://url/for/repo

update submodules with a clone/pull from remote origin at the same time

git pull origin master --recurse-submodules && git submodule update --init --recursive

UNDO

Discard all local changes in your working directory

git reset --hard HEAD

Discard all local changes and RESET to remote version of branch

git reset --hard @{u} or git reset --hard @{upstream}

Discard local changes in a specific file

git checkout HEAD <file>

Revert a commit (by producing a new commit with contrary changes)

git revert <commit>

Reset your HEAD pointer to a previous commit ...and discard all changes since then

git reset --hard <commit>

...and preserve all changes as unstaged changes

git reset <commit>

...and preserve uncommitted local changes git reset --keep <commit>

git help <command>

Usually you don't create branches directly in the bare repository, but you push branches from one work repository to the bare

git push origin myBranch

Update: Worth to mention

git push origin localBranchName:remoteBranchName

you push (and create, if not exists) your local branch to the remote with a different branch name, that your local one. And to make it complete with

git push origin :remoteBranchName

you delete a remote branch.

If you want to give the branch another name then use:

git push origin localBranchName:remoteBranchName

REMOVE ORIGIN URL

git remote rm destination

Verify it is removed

git remote -v

CHANGE ORIGIN URL

The git remote set-url command changes an existing remote repository URL.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git