GithubHelp home page GithubHelp logo

git-cheat-sheet's Introduction

Git Cheat Sheet with git-flow feature


Git


# Other Available Languages: 1. [Turkish Git Cheat Sheet](https://github.com/ArslanBilal/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Tr.md) 2. [Chinese Git Cheat Sheet](https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md)

Git cheat sheet saves you from learning all the commands by heart.

Be free to contribute, update the grammar mistakes. You are also free to add your language file.


Git Cheat Sheet English

###Index


##Create

#####Clone an existing repository:

$ git clone ssh://[email protected]/repo.git

#####Create a new local repository:

$ git init

##Local Changes

#####Changed files in your working directory:

$ git status

#####Changes to tracked files:

$ git diff

#####Add all current changes to the next commit:

$ git add

#####Add some changes in <file> to the next commit:

$ git add -p <file>

#####Commit all local changes in tracked files:

$ git commit -a

#####Commit previously staged changes:

$ git commit

#####Commit with message:

$ git commit -m 'message here'

#####Commit to some previous date:

git commit --date="`date --date='n day ago'`" -am "Commit Message"

#####Change last commit:
Don't amend published commits!

$ git commit --amend

#####Move uncommitted changes from current branch to some other branch:

git stash
git checkout branch2
git stash pop

##Search

#####A text search on all files in the directory:

$ git grep "Hello"

#####In any version of a text search:

$ git grep "Hello" v2.5

###Commit History

#####Show all commits, starting with newest (it'll show the hash, author information, date of commit and title of the commit):

$ git log

#####Show all the commits(it'll show just the commit hash and the commit message):

$ git log --oneline

#####Show all commits of a specific user:

$ git log --author="username"

#####Show changes over time for a specific file:

$ git log -p <file>

#####Who changed, what and when in <file>:

$ git blame <file>

##Branches & Tags

#####List all local branches:

$ git branch

#####List all remote branches:

$ git branch -r

#####Switch HEAD branch:

$ git checkout <branch>

#####Create and switch new branch:

$ git checkout -b <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 branch --track <new-branch> <remote-branch>

#####Delete a local branch:

$ git branch -d <branch>

#####Mark the current commit with a tag:

$ git tag <tag-name>

##Update & Publish

#####List all current configured remotes:

$ git remote -v

#####Show information about a remote:

$ git remote show <remote>

#####Add new remote repository, named <remote>:

$ git remote add <remote> <url>

#####Download all changes from <remote>, but don't integrate into HEAD:

$ git fetch <remote>

#####Download changes and directly merge/integrate into HEAD:

$ git remote pull <remote> <url>

#####Get all changes from HEAD to local repository:

$ git pull origin master

#####Publish local changes on a remote:

$ git push remote <remote> <branch>

#####Delete a branch on the remote:

$ git push <remote> :<branch> (since Git v1.5.0)
or
git push <remote> --delete <branch> (since Git v1.7.0)

#####Publish your tags:

$ git push --tags

##Merge & Rebase

#####Merge into your current HEAD:

$ git merge <branch>

#####Rebase your current HEAD onto <branch>:
Don't rebase published commit!

$ 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 manully solve conflicts and (after resolving) mark file as resolved:

$ git add <resolved-file>
$ git rm <resolved-file>

##Undo

#####Discard all local changes in your working directory:

$ git reset --hard HEAD

#####Get all the files out of the staging area(i.e. undo the last git add):

$ git reset HEAD

#####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>

#####Reset your HEAD pointer to a remote branch current state.

git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature

#####Reset your HEAD pointer to a previous commit and preserve all changes as unstaged changes:

$ git reset <commit>

#####Reset your HEAD pointer to a previous commit and preserve uncommitted local changes:

$ git reset --keep <commit>

##Git-Flow

###Index


###Setup ######You need a working git installation as prerequisite. Git flow works on OSX, Linux and Windows.

#####OSX Homebrew:

$ brew install git-flow

#####OSX Macports:

$ port install git-flow

#####Linux:

$ apt-get install git-flow

#####Windows (Cygwin): ######You need wget and util-linux to install git-flow.

$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

###Getting Started ######Git flow needs to be initialized in order to customize your project setup. Start using git-flow by initializing it inside an existing git repository: #####Initialize: ######You'll have to answer a few questions regarding the naming conventions for your branches. It's recommended to use the default values.

git flow init

###Features ######Develop new features for upcoming releases. Typically exist in developers repos only. #####Start a new feature: ######This action creates a new feature branch based on 'develop' and switches to it.

git flow feature start MYFEATURE

#####Finish up a feature: ######Finish the development of a feature. This action performs the following: ######1)Merged MYFEATURE into 'develop'. ######2)Removes the feature branch. ######3)Switches back to 'develop' branch

git flow feature finish MYFEATURE

#####Publish a feature: ######Are you developing a feature in collaboration? Publish a feature to the remote server so it can be used by other users.

git flow feature publish MYFEATURE

#####Getting a published feature: ######Get a feature published by another user.

git flow feature pull origin MYFEATURE

#####Tracking a origin feature: ######You can track a feature on origin by using

git flow feature track MYFEATURE

###Make a Release ######Support preparation of a new production release. Allow for minor bug fixes and preparing meta-data for a release

#####Start a release: ######To start a release, use the git flow release command. It creates a release branch created from the 'develop' branch. You can optionally supply a [BASE] commit sha-1 hash to start the release from. The commit must be on the 'develop' branch.

git flow release start RELEASE [BASE]

######It's wise to publish the release branch after creating it to allow release commits by other developers. Do it similar to feature publishing with the command:

git flow release publish RELEASE

######(You can track a remote release with the: git flow release track RELEASE command)

#####Finish up a release: ######Finishing a release is one of the big steps in git branching. It performs several actions: ######1)Merges the release branch back into 'master' ######2)Tags the release with its name ######3)Back-merges the release into 'develop' ######4)Removes the release branch

git flow release finish RELEASE

######Don't forget to push your tags with git push --tags


###Hotfixes ######Hotfixes arise from the necessity to act immediately upon an undesired state of a live production version. May be branched off from the corresponding tag on the master branch that marks the production version.

#####Git flow hotfix start: ######Like the other git flow commands, a hotfix is started with

$ git flow hotfix start VERSION [BASENAME]

######The version argument hereby marks the new hotfix release name. Optionally you can specify a basename to start from.

#####Finish a hotfix: ######By finishing a hotfix it gets merged back into develop and master. Additionally the master merge is tagged with the hotfix version

git flow hotfix finish VERSION

###Commands

Git


git-cheat-sheet's People

Contributors

arslanbilal avatar flyhigher139 avatar kamranahmedse avatar mehmetdik avatar pvllnspk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.