git-cheat-sheet

arslanbilalMIT活跃维护

一份 Git 和 Git Flow 常用命令速查表,把分支管理、提交、合并等操作整理成随手可查的卡片,适合记不住命令时快速翻阅。

:octocat: git and git flow cheat sheet

暂无版本7,487star1,442fork同步于 2026-11-10 11:32 UTC

怎么上手

由 README 提炼,执行前请确认
无需安装,直接阅读 README 中的命令即可;如需 git flow 功能:brew install git-flow-avh
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Git 与 Git Flow 命令速查表,帮你快速查到常用命令而不用死记

一份 Git 和 Git Flow 常用命令速查表,把分支管理、提交、合并等操作整理成随手可查的卡片,适合记不住命令时快速翻阅。

核心能力

  • 按配置、分支、合并、撤销等场景分类整理 Git 命令
  • 覆盖 git flow 的 feature、release、hotfix 工作流命令
  • 标注 amend、rebase 等危险操作的警告提示
  • 提供多语言翻译版本入口

容易踩的坑

git flow 需先执行 git flow init 初始化分支命名约定;amend 和 rebase 不要用于已发布的提交;Windows 下安装 git-flow 需依赖 wget 和 util-linux

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Git and Git Flow Cheat Sheet

    Awesome


    📖 About

    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:

    • Fix grammar mistakes
    • Add new commands
    • Translate to your language
    • Improve explanations

    📋 Table of Contents


    🔧 Setup

    View Configuration

    Show current configuration:

    git config --list
    

    Show repository configuration:

    git config --local --list
    

    Show global configuration:

    git config --global --list
    

    Show system configuration:

    git config --system --list
    

    User Configuration

    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
    

    ⚙️ Configuration Files

    ScopeLocationCommand Flag
    Repository<repo>/.git/config--local
    User~/.gitconfig--global
    System/etc/gitconfig--system

    🆕 Create Repository

    Clone Existing Repository

    Via SSH:

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

    Via HTTPS:

    git clone https://domain.com/user/repo.git
    

    Initialize New Repository

    Create repository in current directory:

    git init
    

    Create repository in specific directory:

    git init <directory>
    

    📝 Local Changes

    Check Status & Differences

    View working directory status:

    git status
    

    Show changes to tracked files:

    git diff
    

    Show changes in specific file:

    git diff <file>
    

    Staging Changes

    Add all current changes:

    git add .
    

    Add specific files:

    git add <filename1> <filename2>
    

    Interactively add parts of a file:

    git add -p <file>
    

    Committing Changes

    Commit all tracked file changes:

    git commit -a
    

    Commit staged changes:

    git commit
    

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

    Modify Last Commit

    ⚠️ Warning: Don't amend published commits!

    Amend last commit:

    git commit -a --amend
    

    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"
    

    Stashing Changes

    Save current changes temporarily:

    git stash
    

    Apply last stashed changes:

    git stash apply
    

    Apply specific stash:

    git stash apply stash@{stash_number}
    

    Use git stash list to see available stashes

    Remove last stash:

    git stash drop
    

    Move uncommitted changes to another branch:

    git stash
    git checkout branch2
    git stash pop
    

    🔍 Search

    Text Search

    Search for text in all files:

    git grep "Hello"
    

    Search in specific version:

    git grep "Hello" v2.5
    

    Commit Search

    Find commits that introduced specific keyword:

    git log -S 'keyword'
    

    Search with regular expression:

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

    📖 Commit History

    Basic History

    Show all commits (detailed):

    git log
    

    Show commits (one line each):

    git log --oneline
    

    Show commits by specific author:

    git log --author="username"
    

    Show changes for specific file:

    git log -p <file>
    

    Advanced History

    Compare branches:

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

    Show who changed what and when:

    git blame <file>
    

    Reference Logs

    Show reference log:

    git reflog show
    

    Delete reference log:

    git reflog delete
    

    📁 Move / Rename

    Rename a file:

    git mv Index.txt Index.html
    

    🌿 Branches & Tags

    List Branches

    List local branches:

    git branch
    

    List all branches (local + remote):

    git branch -a
    

    List remote branches:

    git branch -r
    

    List merged branches:

    git branch --merged
    

    Switch & Create Branches

    Switch to existing branch:

    git checkout <branch>
    

    Create and switch to new branch:

    git checkout -b <branch>
    

    Switch to previous branch:

    git checkout -
    

    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:

    git branch <new-branch>
    

    Create tracking branch:

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

    Branch Operations

    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:

    git branch -d <branch>
    

    Force delete local branch:

    git branch -D <branch>
    

    ⚠️ Warning: You will lose unmerged changes!

    Tags

    Create tag at HEAD:

    git tag <tag-name>
    

    Create annotated tag:

    git tag -a <tag-name>
    

    Create tag with message:

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

    List all tags:

    git tag
    

    List tags with messages:

    git tag -n
    

    🔄 Update & Publish

    Remote Management

    List configured remotes:

    git remote -v
    

    Show remote information:

    git remote show <remote>
    

    Add new remote:

    git remote add <remote> <url>
    

    Rename remote:

    git remote rename <remote> <new_remote>
    

    Remove remote:

    git remote rm <remote>
    

    ℹ️ Note: This only removes the remote reference locally, not the remote repository itself.

    Fetch & Pull

    Download changes without merging:

    git fetch <remote>
    

    Download and merge changes:

    git pull <remote> <branch>
    

    Get changes from main branch:

    git pull origin master
    

    Pull with rebase:

    git pull --rebase <remote> <branch>
    

    Push & Publish

    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:

    git push --tags
    

    🔀 Merge & Rebase

    Merge Operations

    Merge branch into current HEAD:

    git merge <branch>
    

    Configure merge tool globally:

    git config --global merge.tool meld
    

    Use configured merge tool:

    git mergetool
    

    Rebase Operations

    ⚠️ Warning: Don't rebase published commits!

    Rebase current HEAD onto branch:

    git rebase <branch>
    

    Abort rebase:

    git rebase --abort
    

    Continue rebase after resolving conflicts:

    git rebase --continue
    

    Conflict Resolution

    Mark file as resolved:

    git add <resolved-file>
    

    Remove resolved file:

    git rm <resolved-file>
    

    Squashing Commits

    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>
    

    ↩️ Undo

    Discard Changes

    Discard all local changes:

    git reset --hard HEAD
    

    Unstage all files:

    git reset HEAD
    

    Discard changes in specific file:

    git checkout HEAD <file>
    

    Reset Operations

    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:

    git reset <commit>
    

    Reset preserving uncommitted local changes:

    git reset --keep <commit>
    

    Revert Commits

    Revert commit (create new commit with opposite changes):

    git revert <commit>
    

    Clean Ignored Files

    Remove accidentally committed files that should be ignored:

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

    🌊 Git Flow

    Improved Git-flow: git-flow-avh

    📋 Table of Contents


    🔧 Setup

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

    macOS (Homebrew):

    brew install git-flow-avh
    

    macOS (MacPorts):

    port install git-flow
    

    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
    

    🚀 Getting Started

    Git-flow needs initialization to customize your project setup.

    Initialize (interactive):

    git flow init
    

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

    Initialize (use defaults):

    git flow init -d
    

    ✨ Features

    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
    

    🎁 Make a Release

    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

    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


    📊 Commands Overview

    🌊 Git Flow Schema


    🌍 Other Languages

    This cheat sheet is available in multiple languages:

    LanguageLink
    🇸🇦 Arabicgit-cheat-sheet-ar.md
    🇧🇩 Bengaligit-cheat-sheet-bn.md
    🇧🇷 Brazilian Portuguesegit-cheat-sheet-pt_BR.md
    🇨🇳 Chinesegit-cheat-sheet-zh.md
    🇩🇪 Germangit-cheat-sheet-de.md
    🇬🇷 Greekgit-cheat-sheet-el.md
    🇮🇳 Hindigit-cheat-sheet-hi.md
    🇰🇷 Koreangit-cheat-sheet-ko.md
    🇵🇱 Polishgit-cheat-sheet-pl.md
    🇪🇸 Spanishgit-cheat-sheet-es.md
    🇹🇷 Turkishgit-cheat-sheet-tr.md

    🤝 Contributing

    We welcome contributions! You can:

    • 🐛 Report bugs or typos
    • ✨ Add new Git commands
    • 🌍 Translate to new languages
    • 💡 Improve explanations
    • 📝 Enhance formatting

    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

    📄 License

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