这个全面的Git速查表帮助您掌握Git命令而无需记住所有内容。无论您是初学者还是经验丰富的开发者,本指南都为基本的Git操作提供快速参考。
欢迎贡献! 请随意:
- 修正语法错误
- 添加新命令
- 翻译成您的语言
- 改进说明
- 📖 关于
- 🔧 设置
- ⚙️ 配置文件
- 🆕 创建仓库
- 📝 本地更改
- 🔍 搜索
- 📖 提交历史
- 📁 移动 / 重命名
- 🌿 分支和标签
- 🔄 更新和发布
- 🔀 合并和变基
- ↩️ 撤销
- 🌊 Git Flow
- 📚 附加资源
- 🌍 其他语言
- 🤝 贡献
- 📄 许可证
显示当前配置:
git config --list显示仓库配置:
git config --local --list显示全局配置:
git config --global --list显示系统配置:
git config --system --list设置版本历史的姓名:
git config --global user.name "[姓名]"设置电子邮件地址:
git config --global user.email "[有效邮箱]"启用自动命令行着色:
git config --global color.ui auto设置全局提交编辑器:
git config --global core.editor vi| 范围 | 位置 | 命令标志 |
|---|---|---|
| 仓库 | <repo>/.git/config |
--local |
| 用户 | ~/.gitconfig |
--global |
| 系统 | /etc/gitconfig |
--system |
通过SSH:
git clone ssh://用户@域名.com/repo.git通过HTTPS:
git clone https://域名.com/用户/repo.git在当前目录创建仓库:
git init在指定目录创建仓库:
git init <目录>查看工作目录状态:
git status显示跟踪文件的更改:
git diff显示特定文件的更改:
git diff <文件>添加所有当前更改:
git add .添加特定文件:
git add <文件1> <文件2>交互式添加文件的部分内容:
git add -p <文件>提交所有跟踪文件的更改:
git commit -a提交暂存的更改:
git commit带消息提交:
git commit -m '这里是消息'跳过暂存并带消息提交:
git commit -am '这里是消息'以特定日期提交:
git commit --date="`date --date='n day ago'`" -am "<提交消息>"
⚠️ 警告: 不要修改已发布的提交!
修正最后一次提交:
git commit -a --amend修正而不更改提交消息:
git commit --amend --no-edit更改提交者日期:
GIT_COMMITTER_DATE="日期" git commit --amend更改作者日期:
git commit --amend --date="日期"临时保存当前更改:
git stash应用最后保存的更改:
git stash apply应用特定的暂存:
git stash apply stash@{暂存号}使用
git stash list查看可用的暂存
删除最后一个暂存:
git stash drop将未提交的更改移动到另一个分支:
git stash
git checkout 分支2
git stash pop在所有文件中搜索文本:
git grep "你好"在特定版本中搜索:
git grep "你好" v2.5查找引入特定关键字的提交:
git log -S '关键字'使用正则表达式搜索:
git log -S '关键字' --pickaxe-regex显示所有提交(详细):
git log显示提交(每行一个):
git log --oneline显示特定作者的提交:
git log --author="用户名"显示特定文件的更改:
git log -p <文件>比较分支:
git log --oneline <origin/master>..<remote/master> --left-right显示谁何时更改了什么:
git blame <文件>显示引用日志:
git reflog show删除引用日志:
git reflog delete重命名文件:
git mv Index.txt Index.html列出本地分支:
git branch列出所有分支(本地+远程):
git branch -a列出远程分支:
git branch -r列出已合并的分支:
git branch --merged切换到现有分支:
git checkout <分支>创建并切换到新分支:
git checkout -b <分支>切换到上一个分支:
git checkout -从现有分支创建分支:
git checkout -b <新分支> <现有分支>从特定提交创建分支:
git checkout <提交哈希> -b <新分支名>创建分支但不切换:
git branch <新分支>创建跟踪分支:
git branch --track <新分支> <远程分支>从不同分支检出单个文件:
git checkout <分支> -- <文件名>应用另一个分支的特定提交:
git cherry-pick <提交哈希>重命名当前分支:
git branch -m <新分支名>删除本地分支:
git branch -d <分支>强制删除本地分支:
git branch -D <分支>
⚠️ 警告: 您将丢失未合并的更改!
在HEAD创建标签:
git tag <标签名>创建注释标签:
git tag -a <标签名>创建带消息的标签:
git tag <标签名> -am '这里是消息'列出所有标签:
git tag列出带消息的标签:
git tag -n列出配置的远程:
git remote -v显示远程信息:
git remote show <远程>添加新远程:
git remote add <远程> <网址>重命名远程:
git remote rename <远程> <新远程>删除远程:
git remote rm <远程>ℹ️ 注意: 这只是在本地删除远程引用,不是远程仓库本身。
下载更改而不合并:
git fetch <远程>下载并合并更改:
git pull <远程> <分支>从主分支获取更改:
git pull origin master使用变基拉取:
git pull --rebase <远程> <分支>发布本地更改:
git push <远程> <分支>删除远程分支:
# Git v1.7.0+
git push <远程> --delete <分支>
# Git v1.5.0+
git push <远程> :<分支>发布标签:
git push --tags将分支合并到当前HEAD:
git merge <分支>全局配置合并工具:
git config --global merge.tool meld使用配置的合并工具:
git mergetool
⚠️ 警告: 不要变基已发布的提交!
将当前HEAD变基到分支:
git rebase <分支>中止变基:
git rebase --abort解决冲突后继续变基:
git rebase --continue标记文件为已解决:
git add <已解决文件>删除已解决文件:
git rm <已解决文件>交互式变基进行压缩:
git rebase -i <第一个提交之前的提交>压缩配置示例:
# 之前
pick <提交id>
pick <提交id2>
pick <提交id3>
# 之后(将提交id2和提交id3压缩到提交id)
pick <提交id>
squash <提交id2>
squash <提交id3>
丢弃所有本地更改:
git reset --hard HEAD从暂存区移除所有文件:
git reset HEAD丢弃特定文件的更改:
git checkout HEAD <文件>重置到上一个提交(丢弃所有更改):
git reset --hard <提交>重置到远程分支状态:
git reset --hard <远程/分支>
# 示例:git reset --hard upstream/master重置保持更改为未暂存:
git reset <提交>重置保持本地未提交更改:
git reset --keep <提交>还原提交(创建具有相反更改的新提交):
git revert <提交>删除意外提交的应该被忽略的文件:
git rm -r --cached .
git add .
git commit -m "删除忽略的文件"改进的Git-flow: git-flow-avh
先决条件: 需要可工作的Git安装。Git-flow可在macOS、Linux和Windows上运行。
macOS (Homebrew):
brew install git-flow-avhmacOS (MacPorts):
port install git-flowLinux (基于Debian):
sudo apt-get install git-flowWindows (Cygwin):
需要wget和util-linux
wget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install <state> | bashGit-flow需要初始化以自定义您的项目设置。
初始化(交互式):
git flow init您将回答关于分支命名约定的问题。建议使用默认值。
初始化(使用默认值):
git flow init -d功能用于开发即将发布的新功能。它们通常只存在于开发者仓库中。
开始新功能:
git flow feature start 我的功能基于'develop'创建功能分支并切换到它
完成功能:
git flow feature finish 我的功能这将:
- 将我的功能合并到'develop'
- 删除功能分支
- 切换回'develop'
发布功能(用于协作):
git flow feature publish 我的功能获取已发布的功能:
git flow feature pull origin 我的功能跟踪源功能:
git flow feature track 我的功能发布支持新生产版本的准备,允许小的错误修复和准备元数据。
开始发布:
git flow release start 发布 [基础]从'develop'创建发布分支。可选择指定[基础]提交SHA-1。
发布版本:
git flow release publish 发布跟踪远程发布:
git flow release track 发布完成发布:
git flow release finish 发布这将:
- 将发布分支合并到'master'
- 标记发布
- 将发布合并回'develop'
- 删除发布分支
💡 别忘了: 使用
git push --tags推送您的标签
热修复解决在线生产版本中的关键问题。它们从master上的相应标签分支。
开始热修复:
git flow hotfix start 版本 [基础名称]完成热修复:
git flow hotfix finish 版本合并回'develop'和'master',并标记master合并
此速查表提供多种语言版本:
| 语言 | 链接 |
|---|---|
| 🇺🇸 英语 | README.md |
| 🇸🇦 阿拉伯语 | git-cheat-sheet-ar.md |
| 🇧🇩 孟加拉语 | git-cheat-sheet-bn.md |
| 🇧🇷 巴西葡萄牙语 | git-cheat-sheet-pt_BR.md |
| 🇩🇪 德语 | git-cheat-sheet-de.md |
| 🇪🇸 西班牙语 | git-cheat-sheet-es.md |
| 🇬🇷 希腊语 | git-cheat-sheet-el.md |
| 🇮🇳 印地语 | git-cheat-sheet-hi.md |
| 🇰🇷 韩语 | git-cheat-sheet-ko.md |
| 🇵🇱 波兰语 | git-cheat-sheet-pl.md |
| 🇹🇷 土耳其语 | git-cheat-sheet-tr.md |
我们欢迎贡献!您可以:
- 🐛 报告错误或拼写错误
- ✨ 添加新的Git命令
- 🌍 翻译成新语言
- 💡 改进说明
- 📝 增强格式
如何贡献:
- Fork这个仓库
- 创建您的功能分支 (
git checkout -b feature/神奇功能) - 提交您的更改 (
git commit -m '添加一些神奇功能') - 推送到分支 (
git push origin feature/神奇功能) - 打开Pull Request
此项目是开源的,在MIT许可证下可用。
⭐ 如果这个仓库对您有帮助,请给它加星!


