【Git使用】Git 团队开发常用命令汇总手册

目录

一、基础配置(首次使用/团队规范配置)

二、仓库操作(初始化/克隆/基础状态)

三、文件暂存与提交(核心操作)

四、分支管理(团队协作核心)

五、远程仓库协作(同步代码)

六、合并与变基(分支代码整合)

冲突解决说明:

七、暂存区临时保存(stash,切换分支前用)

八、标签管理(版本发布)

九、撤销与回滚(纠错操作)

十、进阶常用操作

十一、团队协作规范(补充说明)


本手册覆盖团队协作开发中高频使用的 Git 命令,按功能模块分类,附简要说明,便于日常查阅和快速使用。

一、基础配置(首次使用/团队规范配置)

|-----------------------------------------|---------------------------------------------------|
| 命令 | 说明 |
| git config --global user.name "你的用户名" | 配置全局提交用户名(团队需统一命名规范,如姓名拼音) |
| git config --global user.email "你的邮箱" | 配置全局提交邮箱(需与 Git 平台/公司邮箱一致) |
| git config --global core.editor "vim" | 配置默认编辑器(可选,如 vscode: code --wait) |
| git config --global core.autocrlf false | 统一换行符(Windows 建议 true,Linux/Mac 建议 input/false) |
| git config --list | 查看所有配置项 |
| git config --global --unset 配置项 | 取消某全局配置(如 git config --global --unset user.email) |

二、仓库操作(初始化/克隆/基础状态)

|---------------------------------|------------------------------|
| 命令 | 说明 |
| git init | 在本地初始化空 Git 仓库(新建项目时使用) |
| git clone <远程仓库地址> | 克隆远程仓库到本地(团队协作先克隆仓库) |
| git clone <远程仓库地址> <自定义目录名> | 克隆到指定目录 |
| git status | 查看工作区文件状态(必用:确认修改/未跟踪/暂存文件) |
| git log | 查看提交历史(默认按时间倒序,显示提交ID、作者、信息) |
| git log --oneline | 精简显示提交历史(一行一条,仅显示提交ID前7位+信息) |
| git log --graph | 图形化显示分支合并历史(团队协作查分支流向) |

三、文件暂存与提交(核心操作)

|-------------------------|----------------------------------|
| 命令 | 说明 |
| git add <文件名> | 将指定文件添加到暂存区(单个文件提交前准备) |
| git add . | 将当前目录所有修改/新增文件加入暂存区(常用) |
| git add -u | 仅将已跟踪文件的修改/删除加入暂存区(忽略新增文件) |
| git commit -m "提交说明" | 暂存区文件提交到本地仓库(说明需清晰,如"修复XX功能bug") |
| git commit --amend | 修改最后一次提交(如补全说明、添加漏提交文件,未推远程时用) |
| git reset HEAD <文件名> | 将暂存区指定文件撤回工作区(误add时恢复) |
| git checkout -- <文件名> | 丢弃工作区文件修改(恢复到最近一次提交状态,慎用,无法恢复) |

四、分支管理(团队协作核心)

|---------------------------------------|------------------------------------------------------|
| 命令 | 说明 |
| git branch | 查看本地所有分支(当前分支前标*) |
| git branch -r | 查看远程所有分支 |
| git branch -a | 查看本地+远程所有分支 |
| git branch <分支名> | 创建本地分支(如 git branch feature/user-info) |
| git checkout <分支名> | 切换到指定分支(切换前确保当前分支修改已提交/暂存) |
| git checkout -b <分支名> | 创建并切换到新分支(常用,如 git checkout -b bugfix/order) |
| git branch -d <分支名> | 删除本地已合并分支(如开发完成的功能分支) |
| git branch -D <分支名> | 强制删除本地未合并分支(慎用) |
| git branch -m <旧分支名> <新分支名> | 重命名本地分支 |
| git push origin <本地分支名>:<远程分支名> | 推送本地分支到远程(如 git push origin feature/pay:feature/pay) |
| git push origin --delete <远程分支名> | 删除远程分支(如 git push origin --delete feature/pay) |
| git checkout --track origin/<远程分支名> | 跟踪远程分支创建本地分支(拉取他人创建的远程分支) |

五、远程仓库协作(同步代码)

|----------------------------------|---------------------------------------------|
| 命令 | 说明 |
| git remote -v | 查看远程仓库地址(fetch/push 地址) |
| git remote add origin <远程仓库地址> | 关联本地仓库到远程(初始化仓库后首次关联) |
| git remote rename origin <新名称> | 重命名远程仓库别名(默认origin) |
| git remote remove <远程别名> | 移除远程仓库关联 |
| git fetch | 拉取远程仓库最新代码到本地(不合并,仅更新远程分支信息) |
| git pull | 拉取远程分支代码并合并到本地当前分支(= git fetch + git merge) |
| git pull origin <远程分支名> | 拉取指定远程分支到本地当前分支 |
| git push | 推送本地当前分支到远程对应分支(需先关联跟踪) |
| git push origin <本地分支名> | 推送指定本地分支到远程(首次推送新分支常用) |
| git push -u origin <分支名> | 推送分支并建立跟踪关系(后续可直接git push/pull) |

六、合并与变基(分支代码整合)

|---------------------------|--------------------------------------------------|
| 命令 | 说明 |
| git merge <分支名> | 将指定分支代码合并到当前分支(如开发分支合并到主分支) |
| git merge --no-ff <分支名> | 禁用快进合并,保留分支合并记录(团队规范常用,便于追溯) |
| git rebase <分支名> | 将当前分支基于指定分支变基(如 feature 分支基于 master 变基,使提交记录更线性) |
| git rebase --abort | 变基过程中冲突,放弃变基恢复原状 |
| git rebase --continue | 解决变基冲突后,继续完成变基 |
| git merge --abort | 合并冲突时,放弃合并恢复原状 |

冲突解决说明:

合并/变基出现冲突时,Git 会标记冲突文件(<<<<<<< HEAD 到 >>>>>>> 分支名之间为冲突内容):

  1. 手动编辑文件,保留正确代码,删除冲突标记;
  2. git add <冲突文件> 标记冲突已解决;
  3. 执行 git merge --continue 或 git rebase --continue 完成操作。

七、暂存区临时保存(stash,切换分支前用)

|-------------------------------|------------------------------|
| 命令 | 说明 |
| git stash | 将工作区未提交的修改暂存(切换分支/紧急修复bug时用) |
| git stash save "备注" | 暂存并添加备注(便于区分多个暂存记录) |
| git stash list | 查看所有暂存记录 |
| git stash apply <stash@{n}> | 应用指定暂存记录(n为序号,默认最新,暂存记录不删除) |
| git stash pop | 应用最新暂存记录并删除该记录(常用) |
| git stash drop <stash@{n}> | 删除指定暂存记录 |
| git stash clear | 清空所有暂存记录 |

八、标签管理(版本发布)

|----------------------------------|-------------------------------|
| 命令 | 说明 |
| git tag | 查看本地所有标签 |
| git tag <标签名> | 为最新提交创建轻量标签(如 git tag v1.0.0) |
| git tag -a <标签名> -m "标签说明" | 创建附注标签(含作者、时间、说明,发布版本推荐) |
| git tag -d <标签名> | 删除本地标签 |
| git push origin <标签名> | 推送标签到远程仓库 |
| git push origin --tags | 推送所有本地标签到远程 |
| git push origin --delete <标签名> | 删除远程标签 |
| git checkout <标签名> | 切换到指定标签版本(进入分离头指针状态,仅查看,不修改) |

九、撤销与回滚(纠错操作)

|----------------------------|----------------------------------|
| 命令 | 说明 |
| git reset --soft <提交ID> | 回滚到指定提交,保留工作区和暂存区修改(仅撤销提交记录) |
| git reset --mixed <提交ID> | 回滚到指定提交,保留工作区修改,清空暂存区(默认模式) |
| git reset --hard <提交ID> | 强制回滚到指定提交,清空工作区和暂存区(慎用,数据不可恢复) |
| git revert <提交ID> | 生成新提交,撤销指定提交的修改(已推远程仓库时推荐,不修改历史) |
| git reflog | 查看所有操作记录(恢复误删分支/误回滚提交的关键命令) |

十、进阶常用操作

|------------------------------------|------------------------------------------|
| 命令 | 说明 |
| git cherry-pick <提交ID> | 挑选指定提交应用到当前分支(如将bug修复提交复制到其他分支) |
| git blame <文件名> | 查看文件每行代码的提交者、提交ID和时间(定位代码责任人) |
| git diff | 查看工作区与暂存区的文件差异 |
| git diff <分支1> <分支2> | 对比两个分支的代码差异 |
| git diff --cached | 查看暂存区与最近一次提交的差异 |
| .gitignore | 配置文件,指定Git忽略跟踪的文件(如node_modules、日志、编译文件) |
| git submodule add <子仓库地址> <目录> | 添加子模块(团队项目引用公共子仓库时用) |
| git submodule update --init | 拉取子模块代码(克隆含子模块的仓库后执行) |

十一、团队协作规范(补充说明)

  1. 分支命名:建议按"类型/功能"命名,如 feature/xxx(功能开发)、bugfix/xxx(bug修复)、release/v1.0(发布分支)、hotfix/xxx(线上紧急修复);
  2. 提交说明:清晰简洁,格式推荐 [类型] 描述,如 [fix] 修复订单支付后状态未更新问题;
  3. 核心分支保护:master/main、develop 分支禁止直接推送,需通过合并请求(MR/PR)审核后合并;
  4. 拉取代码:每次开发前先拉取远程最新代码,避免冲突;
  5. 小步提交:功能拆分,单次提交仅包含一个功能/修复,便于追溯和回滚。
相关推荐
郑州光合科技余经理9 小时前
同城系统海外版:一站式多语种O2O系统源码
java·开发语言·git·mysql·uni-app·go·phpstorm
郑州光合科技余经理13 小时前
基于PHP:海外版同城O2O系统多语言源码解决方案
java·开发语言·git·spring cloud·uni-app·php·uniapp
Violet_YSWY13 小时前
git变基删除中间版本,使用drop出现文件丢失问题,原因及解决方案
git
dragonchow12316 小时前
git sparse-checkout, 只拉取部分目录
git
醇氧18 小时前
Git 合并冲突提示 Local Changes Prevent from Merge
运维·git
亚林瓜子1 天前
git中移除.DS_Store文件夹和相关文件
git·mac·ignore·.ds_store
深耕半夜1 天前
git的使用手册
git
pingzhuyan1 天前
linux常规(shell脚本)-启动java程序-实现快捷git拉取,maven打包,nohup发布(无dockerfile版)
java·linux·git·maven·shell
大柏怎么被偷了1 天前
【Git】Git的认识与安装
git