11|常用命令速查:小白必备清单
11|常用命令速查:小白必备清单
大家好,我是小林。
学了这么多Git知识,你现在应该已经掌握了大部分核心操作。但是不是经常遇到这样的情况:想用某个命令,却想不起来具体的语法?或者记得大概,但不确定参数该怎么写?这种时候如果有一份快速参考指南,能让你秒查秒用,那该多方便啊! 今天,我们就来整理一份Git命令速查手册,让你在需要时能够快速找到正确的命令!
11.1 速查表格
下面是Git最常用命令的快速参考表。建议你收藏这个表格,在需要时快速查阅。
基础配置命令
命令 | 用途 | 示例 |
---|---|---|
git config --global user.name "Name" | 设置全局用户名 | git config --global user.name "John Doe" |
git config --global user.email "email" | 设置全局邮箱 | git config --global user.email "john@example.com" |
git config --list | 查看所有配置 | git config --list |
git config --global init.defaultBranch main | 设置默认分支名 | git config --global init.defaultBranch main |
仓库管理命令
命令 | 用途 | 示例 |
---|---|---|
git init | 初始化仓库 | git init |
git clone <url> | 克隆仓库 | git clone https://github.com/user/repo.git |
git status | 查看仓库状态 | git status |
git status -s | 简化状态显示 | git status -s |
文件操作命令
命令 | 用途 | 示例 |
---|---|---|
git add <file> | 添加单个文件 | git add index.html |
git add . | 添加所有修改 | git add . |
git add -A | 添加所有修改(包括删除) | git add -A |
git rm <file> | 删除文件 | git rm oldfile.txt |
git mv <old> <new> | 重命名文件 | git mv old.txt new.txt |
提交操作命令
命令 | 用途 | 示例 |
---|---|---|
git commit -m "message" | 提交修改 | git commit -m "添加新功能" |
git commit --amend | 修改最后一次提交 | git commit --amend -m "修正提交信息" |
git commit -am "message" | 添加并提交所有修改 | git commit -am "快速提交" |
查看历史命令
命令 | 用途 | 示例 |
---|---|---|
git log | 查看详细历史 | git log |
git log --oneline | 查看简化历史 | git log --oneline |
git log --oneline -5 | 查看最近5个提交 | git log --oneline -5 |
git log --graph | 查看分支图形 | git log --oneline --graph |
git show <commit> | 查看特定提交 | git show abc123 |
git diff | 查看工作区差异 | git diff |
git diff --cached | 查看暂存区差异 | git diff --cached |
git diff HEAD~1 | 与上一个提交比较 | git diff HEAD~1 |
撤销操作命令
命令 | 用途 | 示例 |
---|---|---|
git restore <file> | 恢复工作区文件 | git restore index.html |
git restore --staged <file> | 取消暂存 | git restore --staged file.txt |
git reset HEAD <file> | 取消暂存文件 | git reset HEAD file.txt |
git reset --hard <commit> | 硬重置到指定提交 | git reset --hard abc123 |
git reset --soft <commit> | 软重置到指定提交 | git reset --soft abc123 |
git checkout <file> | 恢复文件(旧命令) | git checkout -- file.txt |
分支管理命令
命令 | 用途 | 示例 |
---|---|---|
git branch | 查看所有分支 | git branch |
git branch <name> | 创建新分支 | git branch feature |
git branch -d <name> | 删除分支(安全) | git branch -d feature |
git branch -D <name> | 强制删除分支 | git branch -D feature |
git switch <name> | 切换分支 | git switch main |
git switch -c <name> | 创建并切换分支 | git switch -c feature |
git checkout <name> | 切换分支(旧命令) | git checkout main |
git checkout -b <name> | 创建并切换分支(旧命令) | git checkout -b feature |
git merge <name> | 合并分支 | git merge feature |
远程仓库命令
命令 | 用途 | 示例 |
---|---|---|
git remote add <name> <url> | 添加远程仓库 | git remote add origin https://github.com/user/repo.git |
git remote -v | 查看远程仓库 | git remote -v |
git remote remove <name> | 删除远程仓库 | git remote remove origin |
git remote rename <old> <new> | 重命名远程仓库 | git remote rename origin upstream |
git push -u origin <branch> | 首次推送分支 | git push -u origin main |
git push origin <branch> | 推送分支 | git push origin main |
git pull origin <branch> | 拉取远程更新 | git pull origin main |
git fetch origin | 获取远程更新 | git fetch origin |
标签管理命令
命令 | 用途 | 示例 |
---|---|---|
git tag | 查看所有标签 | git tag |
git tag <name> | 创建轻量标签 | git tag v1.0 |
git tag -a <name> -m "message" | 创建注释标签 | git tag -a v1.0 -m "版本1.0" |
git tag -d <name> | 删除标签 | git tag -d v1.0 |
git push origin <tag> | 推送标签 | git push origin v1.0 |
git push origin --tags | 推送所有标签 | git push origin --tags |
查看信息命令
命令 | 用途 | 示例 |
---|---|---|
git blame <file> | 查看文件每一行的修改者 | git blame app.js |
git ls-files | 查看被追踪的文件 | git ls-files |
git grep "pattern" | 在代码中搜索 | git grep "TODO" |
git shortlog | 查看贡献者统计 | git shortlog |
git count-objects | 查看仓库对象统计 | git count-objects |
高级操作命令
命令 | 用途 | 示例 |
---|---|---|
git stash | 暂存当前工作 | git stash |
git stash pop | 恢复暂存的工作 | git stash pop |
git stash list | 查看暂存列表 | git stash list |
git rebase <branch> | 变基操作 | git rebase main |
git cherry-pick <commit> | 选择性合并提交 | git cherry-pick abc123 |
git reflog | 查看操作历史 | git reflog |
11.2 额外提示
除了上面的命令表格,这里还有一些实用的提示和技巧,能让你的Git使用更加高效。
.gitignore 基础
.gitignore
文件用来告诉Git哪些文件或目录不需要版本控制。这对于忽略临时文件、构建产物、敏感信息等非常重要。
常见的 .gitignore 规则
# 忽略特定文件
config.js
secret.txt
# 忽略特定扩展名
*.log
*.tmp
*.swp
# 忽略目录
node_modules/
dist/
build/
# 忽略.DS_Store文件(macOS)
.DS_Store
# 忽略IDE配置文件
.vscode/
.idea/
# 忽略环境变量文件
.env
.env.local
# 保留文件(即使被忽略)
!important.log
创建 .gitignore 文件
在项目根目录创建 .gitignore
文件:
# 创建 .gitignore 文件
touch .gitignore
# 编辑文件
echo "node_modules/" >> .gitignore
echo ".env" >> .gitignore
echo "*.log" >> .gitignore
# 提交 .gitignore 文件
git add .gitignore
git commit -m "添加 .gitignore 文件"
使用模板
GitHub 提供了各种语言的 .gitignore 模板,你可以直接使用:
- 访问:https://github.com/github/gitignore
- 找到你使用的语言的模板
- 复制内容到你的 .gitignore 文件
命令别名配置
为了提高效率,你可以为常用的Git命令设置别名:
# 设置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph"
git config --global alias.unstage "reset HEAD --"
git config --global alias.last "log -1 HEAD"
# 使用别名
git st # 等同于 git status
git co main # 等同于 git checkout main
git lg # 等同于 git log --oneline --graph
常用命令组合
这里有一些常用的命令组合,可以提高工作效率:
# 快速提交所有修改
git add .
git commit -m "快速提交"
# 查看简洁的提交历史
git log --oneline --graph --decorate
# 查看最近的3个提交
git log --oneline -3
# 撤销工作区的所有修改
git restore .
# 取消暂存所有文件
git reset HEAD .
# 删除所有已合并的分支
git branch --merged | grep -v "main" | xargs git branch -d
紧急情况处理
遇到紧急情况时,这些命令可以帮助你:
# 撤销最后一次提交(保留修改)
git reset --soft HEAD~1
# 撤销最后一次提交(丢弃修改)
git reset --hard HEAD~1
# 恢复误删的文件
git checkout HEAD~1 -- deleted-file.txt
# 找回丢失的提交
git reflog
# 找到对应的提交哈希,然后
git reset --hard <commit-hash>
# 取消合并(合并冲突时)
git merge --abort
# 取消变基
git rebase --abort
工作流程最佳实践
个人开发工作流
# 1. 开始新功能
git switch -c feature/new-feature
# 2. 开发过程中
git add .
git commit -m "功能进展"
# 3. 完成功能
git add .
git commit -m "完成新功能"
# 4. 切换到主分支并合并
git switch main
git merge feature/new-feature
# 5. 清理
git branch -d feature/new-feature
团队协作工作流
# 1. 开始工作前先更新
git pull origin main
# 2. 创建功能分支
git switch -c feature/your-name/feature-name
# 3. 开发并提交
git add .
git commit -m "描述你的修改"
# 4. 推送到远程
git push -u origin feature/your-name/feature-name
# 5. 创建 Pull Request
# (在GitHub/GitLab网页端操作)
# 6. 处理反馈和修改
git add .
git commit -m "根据反馈修改"
git push origin feature/your-name/feature-name
# 7. 合并后清理本地分支
git switch main
git pull origin main
git branch -d feature/your-name/feature-name
性能优化技巧
# 清理不必要的文件和历史
git gc --prune=now
# 查看仓库大小
git count-objects -vH
# 查看大文件
git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | sed -n 's/^blob //p' | sort -nrk2 | head -n 10
# 压缩仓库历史
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch big-file.zip' --prune-empty --tag-name-filter cat -- --all
调试技巧
# 查看Git配置
git config --list
# 查看远程仓库信息
git remote show origin
# 查看分支跟踪关系
git branch -vv
# 查看文件历史
git log --follow filename.txt
# 查看特定作者提交
git log --author="John Doe"
# 查看特定时间段的提交
git log --since="2025-01-01" --until="2025-12-31"
备份和迁移
# 创建裸仓库备份
git clone --bare /path/to/repo /path/to/backup.git
# 从备份恢复
git clone /path/to/backup.git /path/to/new-repo
# 打包仓库
git bundle create repo.bundle HEAD main
# 从包恢复
git clone repo.bundle new-repo
常见问答
Q1: 如何记住这么多Git命令?
确实,Git命令很多,完全记住需要时间。建议的学习方法是:
- 先掌握核心命令:init, add, commit, status, push, pull 这些是最常用的
- 创建速查表:把常用命令写在便签上,贴在工作区
- 多练习:实际项目中频繁使用,自然就记住了
- 理解原理:理解Git的工作原理后,命令就更容易记忆
- 使用工具:可以借助图形化工具辅助,但命令行基础还是要扎实
最重要的是不要急于求成,循序渐进地学习和练习。
Q2: Git命令太长,有没有简化方法?
有很多方法可以简化Git命令:
- 使用别名:如前面提到的
git config --global alias.st status
- 使用shell别名:在
.bashrc
或.zshrc
中设置别名 - 使用Tab补全:大多数shell支持Git命令的Tab补全
- 使用图形化工具:如VS Code、SourceTree等
- 创建脚本:为常用的命令组合创建shell脚本
例如,在 .bashrc
中添加:
alias gs='git status'
alias ga='git add'
alias gc='git commit -m'
alias gp='git push'
Q3: 如何避免常见的Git错误?
避免Git错误的最好方法是养成良好的习惯:
- 经常查看状态:
git status
是你的好朋友 - 提交前检查:使用
git diff
和git diff --cached
检查修改 - 小步提交:不要把所有修改放在一个提交中
- 及时同步:经常
git pull
获取最新代码 - 使用分支:不要直接在main分支上开发
- 备份重要工作:使用
git stash
暂存未完成的工作 - 阅读错误信息:Git的错误信息通常很有帮助
Q4: 如何选择合适的Git工具?
选择Git工具要考虑几个因素:
初学者:
- 建议先学习命令行,打下坚实基础
- 可以配合VS Code的Git集成使用
- 不要完全依赖图形化工具
中级用户:
- 熟练使用命令行
- 使用VS Code或SourceTree辅助复杂操作
- 开始使用一些高级功能
高级用户:
- 主要使用命令行
- 根据需要选择专业工具
- 可能会定制Git配置和脚本
团队协作:
- 考虑团队的工具一致性
- GitHub/GitLab的网页界面很重要
- 代码审查工具的集成
关键是:命令行基础要扎实,图形化工具作为辅助。
练习题
练习 1:命令速查练习
根据需求写出对应的Git命令:
# 1. 初始化一个新的Git仓库
# 2. 查看当前仓库状态
# 3. 添加所有修改到暂存区
# 4. 提交修改并添加说明
# 5. 查看提交历史
答案
对应命令:# 1. 初始化一个新的Git仓库
git init
# 2. 查看当前仓库状态
git status
# 3. 添加所有修改到暂存区
git add .
# 4. 提交修改并添加说明
git commit -m "提交说明"
# 5. 查看提交历史
git log --oneline
这些是Git最基本也是最常用的命令。
练习 2:分支操作练习
完成一系列分支操作:
# 1. 创建并切换到新分支feature-test
# 2. 在新分支上创建文件并提交
# 3. 切换回主分支
# 4. 合并feature-test分支
# 5. 删除feature-test分支
答案
分支操作完整步骤:# 1. 创建并切换到新分支feature-test
git switch -c feature-test
# 2. 在新分支上创建文件并提交
echo "测试功能" > test.txt
git add test.txt
git commit -m "添加测试文件"
# 3. 切换回主分支
git switch main
# 4. 合并feature-test分支
git merge feature-test
# 5. 删除feature-test分支
git branch -d feature-test
# 验证结果
git status
git log --oneline
这个练习涵盖了分支管理的完整流程。
练习 3:远程仓库操作练习
模拟完整的远程仓库操作:
# 1. 添加远程仓库origin
# 2. 首次推送到远程仓库
# 3. 在本地创建新分支并提交
# 4. 推送新分支到远程仓库
# 5. 从远程仓库拉取更新
答案
远程仓库操作步骤:# 1. 添加远程仓库origin
git remote add origin https://github.com/username/repo.git
# 2. 首次推送到远程仓库
git push -u origin main
# 3. 在本地创建新分支并提交
git switch -c feature-remote
echo "远程功能测试" > remote.txt
git add remote.txt
git commit -m "添加远程功能"
# 4. 推送新分支到远程仓库
git push -u origin feature-remote
# 5. 从远程仓库拉取更新
git pull origin main
# 验证远程连接
git remote -v
这个练习模拟了完整的远程仓库协作流程。
常见坑
很多人喜欢在主分支上直接开发,这是很危险的习惯。一旦代码出现问题,会影响整个项目的稳定性。养成在功能分支上开发的好习惯,测试完成后再合并到主分支。
有些人在提交前不检查修改内容,导致提交了不该提交的文件(如配置文件、临时文件等)。提交前一定要用 git status
和 git diff
检查,确保只提交想要的内容。
在团队协作中,有些人经常忘记 git pull
就直接 git push
,导致推送失败和冲突。养成先拉取再推送的习惯,可以避免很多问题。
有些人对Git的警告信息视而不见,比如Git提示文件权限问题、换行符问题等。这些警告通常很重要,应该及时处理。
在紧急情况下,有些人会随意使用 git push --force
强制推送,这会覆盖他人的工作。除非你完全明白后果,否则不要使用强制推送。
章节总结
通过这一章的学习,你现在有了一份完整的Git命令速查手册。这份手册涵盖了Git最常用的命令,从基础配置到高级操作,从本地管理到远程协作。
你学会了如何快速查找和使用Git命令,理解了每个命令的具体用途和语法。这份速查表将成为你日常使用Git的得力助手,让你在需要时能够快速找到正确的命令。
你还学习了一些实用的技巧和最佳实践,包括 .gitignore 的使用、命令别名配置、常用命令组合、紧急情况处理等。这些技巧能大大提高你的Git使用效率。
现在你已经掌握了Git的核心技能,从基础的版本控制到高级的团队协作。这份速查手册将是你未来工作中的重要参考资料,帮助你随时回顾和查找Git命令。
相信我,熟练掌握这些命令后,你就会发现Git其实并不复杂,它是一个强大而优雅的版本控制工具。继续在实际项目中练习和探索,你会成为真正的Git专家!