Git 已经成为当前软件开发版本控制的标准工具。掌握 Git 不仅能提高个人开发效率,更能促进团队协作,分享 20 个最常用的 Git 命令。
基础配置命令
1. 初始化配置
配置用户信息是使用 Git 的第一步:
# 配置全局用户名和邮箱
git config --global user.name "FedJavaScript"
git config --global user.email "FedJavaScript@example.com"
# 查看配置信息
git config --list
2. 仓库初始化
创建新的 Git 仓库:
# 初始化新仓库
git init
# 克隆远程仓库
git clone <repository-url>
日常工作命令
3. 状态查看
实时了解仓库状态:
# 查看工作区状态
git status
# 查看简化状态信息
git status -s
# 查看分支情况
git branch -v
4. 添加和提交
基本的版本控制操作:
# 添加指定文件到暂存区
git add <file-name>
# 添加所有更改
git add .
# 提交到本地仓库
git commit -m "commit message"
# 添加并提交
git commit -am "commit message"
5. 分支操作
分支管理是 Git 的核心功能:
# 创建新分支
git branch <branch-name>
# 切换分支
git checkout <branch-name>
# 创建并切换分支
git checkout -b <branch-name>
# 删除分支
git branch -d <branch-name>
高级协作命令
6. 远程仓库操作
与远程仓库交互:
# 添加远程仓库
git remote add origin <repository-url>
# 查看远程仓库
git remote -v
# 推送到远程
git push origin <branch-name>
# 拉取远程更新
git pull origin <branch-name>
7. 合并与衍合
处理分支合并:
# 合并分支
git merge <branch-name>
# 变基操作
git rebase <branch-name>
# 解决冲突后继续变基
git rebase --continue
8. 暂存操作
临时保存工作进度:
# 保存当前工作进度
git stash
# 查看存储的工作进度
git stash list
# 恢复最近的进度
git stash pop
# 删除所有进度
git stash clear
高级查看命令
9. 日志查看
查看提交历史:
# 查看提交日志
git log
# 查看简化日志
git log --oneline
# 查看图形化日志
git log --graph --pretty=oneline --abbrev-commit
10. 差异比较
比较文件差异:
# 查看工作区和暂存区的差异
git diff
# 查看暂存区和最新提交的差异
git diff --staged
# 查看两个分支的差异
git diff <branch1> <branch2>
撤销与重置
11. 撤销操作
修正错误操作:
# 撤销工作区的修改
git checkout -- <file-name>
# 撤销暂存区的修改
git reset HEAD <file-name>
# 创建反向提交
git revert <commit-id>
12. 重置操作
重置版本:
# 软重置
git reset --soft HEAD^
# 混合重置
git reset --mixed HEAD^
# 硬重置
git reset --hard HEAD^
团队协作进阶
13. 标签管理
版本标记:
# 创建标签
git tag <tag-name>
# 创建带注释的标签
git tag -a <tag-name> -m "tag message"
# 推送标签到远程
git push origin <tag-name>
14. 子模块
管理项目依赖:
# 添加子模块
git submodule add <repository-url>
# 初始化子模块
git submodule init
# 更新子模块
git submodule update
15. 工作流相关
# 创建补丁
git format-patch -1 <commit-id>
# 应用补丁
git apply <patch-file>
# 拣选提交
git cherry-pick <commit-id>
配置与优化
16. 别名配置
提高效率的快捷命令:
# 配置常用别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
17. 忽略文件
管理不需要版本控制的文件:
# 创建.gitignore 文件
touch .gitignore
# 常见配置示例
*.log
node_modules/
.DS_Store
18. 历史管理
# 修改最后一次提交
git commit --amend
# 压缩历史
git rebase -i HEAD~3
# 清理历史
git gc
19. 远程分支管理
# 查看远程分支
git remote show origin
# 清理远程分支
git remote prune origin
# 跟踪远程分支
git branch --track <branch-name> origin/<branch-name>
20. 高级查找
# 查找内容
git grep "search term"
# 查找提交者
git log --author="committer name"
# 按日期查找
git log --since="2019-01-01" --until="2019-06-30"
日常工作流程
更新本地代码
git pull origin main
创建功能分支
git checkout -b feature/new-feature
定期提交
git add .
git commit -m "commit message"
推送到远程
git push origin feature/new-feature
提交信息规范
采用约定式提交格式:
# 功能开发
feat: add new feature
# 修复bug
fix: resolve issue #123
# 文档更新
docs: update README.md
分支管理策略
- main/master:主分支,保持稳定
- develop:开发分支
- feature/*:功能分支
- hotfix/*:紧急修复分支
- release/*:发布分支
欢迎补充。