A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/arslanbilal/git-cheat-sheet below:

arslanbilal/git-cheat-sheet: :octocat: git and git flow cheat sheet

Git and Git Flow Cheat Sheet

This comprehensive Git cheat sheet helps you master Git commands without memorizing everything. Whether you're a beginner or an experienced developer, this guide provides quick reference to essential Git operations.

Contributions Welcome! Feel free to:

Show current configuration:

Show repository configuration:

git config --local --list

Show global configuration:

git config --global --list

Show system configuration:

git config --system --list

Set your name for version history:

git config --global user.name "[firstname lastname]"

Set your email address:

git config --global user.email "[valid-email]"
Display & Editor Settings

Enable automatic command line coloring:

git config --global color.ui auto

Set global editor for commits:

git config --global core.editor vi
Scope Location Command Flag Repository <repo>/.git/config --local User ~/.gitconfig --global System /etc/gitconfig --system Clone Existing Repository

Via SSH:

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

Via HTTPS:

git clone https://domain.com/user/repo.git
Initialize New Repository

Create repository in current directory:

Create repository in specific directory:

Check Status & Differences

View working directory status:

Show changes to tracked files:

Show changes in specific file:

Add all current changes:

Add specific files:

git add <filename1> <filename2>

Interactively add parts of a file:

Commit all tracked file changes:

Commit staged changes:

Commit with message:

git commit -m 'message here'

Skip staging and commit with message:

git commit -am 'message here'

Commit with specific date:

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

âš ī¸ Warning: Don't amend published commits!

Amend last commit:

Amend without changing commit message:

git commit --amend --no-edit

Change committer date:

GIT_COMMITTER_DATE="date" git commit --amend

Change author date:

git commit --amend --date="date"

Save current changes temporarily:

Apply last stashed changes:

Apply specific stash:

git stash apply stash@{stash_number}

Use git stash list to see available stashes

Remove last stash:

Move uncommitted changes to another branch:

git stash
git checkout branch2
git stash pop

Search for text in all files:

Search in specific version:

Find commits that introduced specific keyword:

Search with regular expression:

git log -S 'keyword' --pickaxe-regex

Show all commits (detailed):

Show commits (one line each):

Show commits by specific author:

git log --author="username"

Show changes for specific file:

Compare branches:

git log --oneline <origin/master>..<remote/master> --left-right

Show who changed what and when:

Show reference log:

Delete reference log:

Rename a file:

git mv Index.txt Index.html

List local branches:

List all branches (local + remote):

List remote branches:

List merged branches:

Switch to existing branch:

Create and switch to new branch:

Switch to previous branch:

Create branch from existing branch:

git checkout -b <new_branch> <existing_branch>

Create branch from specific commit:

git checkout <commit-hash> -b <new_branch_name>

Create branch without switching:

Create tracking branch:

git branch --track <new-branch> <remote-branch>

Checkout single file from different branch:

git checkout <branch> -- <filename>

Apply specific commit from another branch:

git cherry-pick <commit hash>

Rename current branch:

git branch -m <new_branch_name>

Delete local branch:

Force delete local branch:

âš ī¸ Warning: You will lose unmerged changes!

Create tag at HEAD:

Create annotated tag:

Create tag with message:

git tag <tag-name> -am 'message here'

List all tags:

List tags with messages:

List configured remotes:

Show remote information:

Add new remote:

git remote add <remote> <url>

Rename remote:

git remote rename <remote> <new_remote>

Remove remote:

â„šī¸ Note: This only removes the remote reference locally, not the remote repository itself.

Download changes without merging:

Download and merge changes:

git pull <remote> <branch>

Get changes from main branch:

Pull with rebase:

git pull --rebase <remote> <branch>

Publish local changes:

git push <remote> <branch>

Delete remote branch:

# Git v1.7.0+
git push <remote> --delete <branch>

# Git v1.5.0+
git push <remote> :<branch>

Publish tags:

Merge branch into current HEAD:

Configure merge tool globally:

git config --global merge.tool meld

Use configured merge tool:

âš ī¸ Warning: Don't rebase published commits!

Rebase current HEAD onto branch:

Abort rebase:

Continue rebase after resolving conflicts:

Mark file as resolved:

Remove resolved file:

Interactive rebase for squashing:

git rebase -i <commit-just-before-first>

Example squash configuration:

# Before
pick <commit_id>
pick <commit_id2>
pick <commit_id3>

# After (squash commit_id2 and commit_id3 into commit_id)
pick <commit_id>
squash <commit_id2>
squash <commit_id3>

Discard all local changes:

Unstage all files:

Discard changes in specific file:

Reset to previous commit (discard all changes):

git reset --hard <commit>

Reset to remote branch state:

git reset --hard <remote/branch>
# Example: git reset --hard upstream/master

Reset preserving changes as unstaged:

Reset preserving uncommitted local changes:

git reset --keep <commit>

Revert commit (create new commit with opposite changes):

Remove accidentally committed files that should be ignored:

git rm -r --cached .
git add .
git commit -m "remove ignored files"

Improved Git-flow: git-flow-avh

Prerequisite: Working Git installation required. Git-flow works on macOS, Linux, and Windows.

macOS (Homebrew):

brew install git-flow-avh

macOS (MacPorts):

Linux (Debian-based):

sudo apt-get install git-flow

Windows (Cygwin):

Requires wget and util-linux

wget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install <state> | bash

Git-flow needs initialization to customize your project setup.

Initialize (interactive):

You'll answer questions about branch naming conventions. Default values are recommended.

Initialize (use defaults):

Features are for developing new functionality for upcoming releases. They typically exist only in developer repositories.

Start new feature:

git flow feature start MYFEATURE

Creates feature branch based on 'develop' and switches to it

Finish feature:

git flow feature finish MYFEATURE

This will:

  1. Merge MYFEATURE into 'develop'
  2. Remove the feature branch
  3. Switch back to 'develop'

Publish feature (for collaboration):

git flow feature publish MYFEATURE

Get published feature:

git flow feature pull origin MYFEATURE

Track origin feature:

git flow feature track MYFEATURE

Releases support preparation of new production releases, allowing minor bug fixes and preparing meta-data.

Start release:

git flow release start RELEASE [BASE]

Creates release branch from 'develop'. Optionally specify [BASE] commit SHA-1.

Publish release:

git flow release publish RELEASE

Track remote release:

git flow release track RELEASE

Finish release:

git flow release finish RELEASE

This will:

  1. Merge release branch into 'master'
  2. Tag the release
  3. Back-merge release into 'develop'
  4. Remove release branch

💡 Don't forget: Push your tags with git push --tags

Hotfixes address critical issues in live production versions. They branch off from the corresponding tag on master.

Start hotfix:

git flow hotfix start VERSION [BASENAME]

Finish hotfix:

git flow hotfix finish VERSION

Merges back into both 'develop' and 'master', and tags the master merge

This cheat sheet is available in multiple languages:

We welcome contributions! You can:

How to contribute:

  1. Fork this repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

This project is open source and available under the MIT License.

⭐ Star this repository if you found it helpful!


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4