以下是 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 = checkoutbr = branchci = commitst = statuslg = log --oneline --graph --decoratelast = log -1 HEAD
注意事项
- 危险操作:
reset --hard
、push --force
可能导致数据丢失,需谨慎使用。 - 分支规范:推荐使用
feature/xxx
、hotfix/xxx
等命名约定。 - 定期同步:频繁执行
git fetch
保持本地与远程信息同步。
结合 GUI 工具(如 VS Code、GitKraken)可提升效率,但掌握命令行是核心能力!