以下是 Git 命令分类大全,覆盖日常开发、团队协作和高级操作场景,按功能分类整理:
一、配置与初始化
命令 |
说明 |
git config --global user.name "Your Name" |
设置全局用户名 |
git config --global user.email "email@example.com" |
设置全局邮箱 |
git config --global core.editor "vim" |
设置默认编辑器 |
git config --list |
查看所有配置 |
git init |
初始化本地仓库 |
git clone <repo_url> |
克隆远程仓库到本地 |
二、文件操作
命令 |
说明 |
git add <file> |
添加文件到暂存区 |
git add . |
添加所有修改到暂存区 |
git rm <file> |
删除文件并加入暂存区 |
git mv <old> <new> |
重命名文件并加入暂存区 |
git restore <file> |
撤销工作区未暂存的修改(Git 2.23+) |
git restore --staged <file> |
撤销暂存区的修改(保留工作区) |
三、提交与历史
命令 |
说明 |
git commit -m "message" |
提交暂存区内容 |
git commit --amend |
修改最后一次提交信息或内容 |
git log |
查看提交历史 |
git log --oneline --graph |
简洁版提交历史(含分支图) |
git reflog |
查看所有操作历史(包括被删除的提交) |
四、分支管理
命令 |
说明 |
git branch |
查看本地分支 |
git branch -a |
查看所有分支(本地+远程) |
git switch <branch> |
切换分支(Git 2.23+推荐) |
git switch -c <new-branch> |
创建并切换分支 |
git merge <branch> |
合并指定分支到当前分支 |
git rebase <branch> |
变基(重写提交历史) |
git branch -d <branch> |
删除已合并的分支 |
git branch -D <branch> |
强制删除未合并的分支 |
五、远程仓库
命令 |
说明 |
git remote -v |
查看远程仓库地址 |
git remote add origin <url> |
关联远程仓库 |
git fetch |
拉取远程仓库元数据(不自动合并) |
git pull |
拉取并合并远程代码(相当于 git fetch + merge ) |
git push origin <branch> |
推送本地分支到远程 |
git push -u origin <branch> |
首次推送并关联远程分支 |
git push --force |
强制推送(覆盖远程历史,慎用!) |
六、撤销与回退
命令 |
说明 |
git reset --soft HEAD^ |
回退到上一提交,保留修改到暂存区 |
git reset --hard HEAD^ |
彻底回退到上一提交(丢弃所有修改) |
git revert <commit> |
生成新提交来撤销指定提交(安全回退) |
git checkout HEAD -- <file> |
丢弃工作区某文件的修改 |
七、标签管理
命令 |
说明 |
git tag |
查看所有标签 |
git tag v1.0.0 |
创建轻量标签 |
git tag -a v1.0.0 -m "message" |
创建带注释的标签 |
git push origin --tags |
推送所有标签到远程 |
git tag -d v1.0.0 |
删除本地标签 |
八、储藏与临时工作
命令 |
说明 |
git stash |
临时储藏当前工作区修改 |
git stash list |
查看储藏列表 |
git stash pop |
恢复最新储藏并删除记录 |
git stash apply |
恢复储藏但不删除记录 |
九、子模块(Submodule)
命令 |
说明 |
git submodule add <repo_url> |
添加子模块 |
git submodule update --init --recursive |
初始化并更新子模块 |
十、高级操作
命令 |
说明 |
git cherry-pick <commit> |
复制指定提交到当前分支 |
git bisect start |
使用二分法定位问题提交 |
git blame <file> |
查看文件的逐行修改记录 |
git clean -fd |
删除未跟踪的文件和目录 |
十一、常见问题处理
1. 冲突解决
git add .
git commit -m "Resolved conflict"
2. 找回被删除的提交
git reflog
git reset --hard <commit>
3. 清理历史大文件
git filter-branch --tree-filter 'rm -f bigfile' HEAD
十二、常用别名设置(.gitconfig
)
[alias]
co = checkout
br = branch
ci = commit
st = status
lg = log --oneline --graph --decorate
last = log -1 HEAD
注意事项
- 危险操作:
reset --hard
、push --force
可能导致数据丢失,需谨慎使用。
- 分支规范:推荐使用
feature/xxx
、hotfix/xxx
等命名约定。
- 定期同步:频繁执行
git fetch
保持本地与远程信息同步。
结合 GUI 工具(如 VS Code、GitKraken)可提升效率,但掌握命令行是核心能力!