Git版本控制器
Git 版本控制核心用法指南
1. 基础配置与初始化
1.1 全局配置
在首次使用 Git 时,需要配置提交代码时的用户信息:
git config --global user.name “你的用户名”
git config --global user.email “你的邮箱”
1.2 仓库初始化
- 新建本地仓库:在项目目录下执行
git init,将当前目录变为 Git 可管理的仓库。 - 克隆远程仓库:
git clone <仓库URL>,将远程代码完整下载到本地。
2. 核心工作流 (本地操作)
Git 的核心在于理解“工作区 -> 暂存区 -> 本地仓库”的流转。
2.1 查看状态
git status:查看当前工作区和暂存区的文件状态(哪些被修改、哪些未追踪)。
2.2 添加与提交
git add <文件名>:将指定文件添加到暂存区。git add .:将当前目录下所有修改过的文件一次性添加到暂存区。git commit -m "提交日志信息":将暂存区的内容正式提交到本地仓库,并附上说明。
2.3 查看历史
git log:查看详细的提交历史记录(包含时间、作者、日志信息)。git reflog:查看 HEAD 指针的移动记录,常用于找回误删的提交。
3. 远程仓库交互
3.1 关联远程仓库
git remote add origin <远程仓库URL>:将本地仓库与远程仓库建立连接。git remote -v:查看当前关联的远程仓库地址。
3.2 推送与拉取
git push origin <分支名>:将本地指定分支的提交推送到远程仓库。git pull origin <分支名>:从远程仓库拉取最新代码,并与本地当前分支合并。git fetch origin:仅拉取远程仓库的最新变更到本地,但不自动合并。git checkout origin/<分支名> -- <文件路径/文件名>拉去指定分支的某个文件
拉取时,通常是一次拉取一整支分支,所以对于不同项目,我们一般为每个项目都会设置单独的仓库,每个分支存放不同状态的完整项目代码
例如:(main 分支:代表项目当前最稳定、随时可以上线的完整状态。
feature-login 分支:代表项目正在开发“登录功能”时的完整状态(可能代码还没写完,甚至有 Bug)。
feature-payment 分支:代表项目正在开发“支付功能”时的完整状态(和登录功能互不干扰)。)
这样是为了隔离不同时期功能的代码,防止互相影响,便于回滚和测试
4. 分支管理 (Branching)
分支是 Git 最强大的特性,允许在不影响主线(如 main 或 master)的情况下进行开发。
git branch:查看所有本地分支。git branch <分支名>:创建一个新分支。git checkout <分支名>:切换到指定分支。git checkout -b <分支名>:创建并立即切换到新分支。git merge <分支名>:将指定分支的代码合并到当前分支。
5. 进阶
5.1 提交信息规范 (Conventional Commits)
为了保持团队协作的一致性,建议采用结构化的提交信息:
feat: 新增用户登录功能(新功能)fix: 修复支付模块的空指针异常(Bug修复)docs: 更新 README 安装说明(文档修改)refactor: 重构数据库连接池(代码重构)
5.2 撤销与重置
git reset HEAD <文件名>:将文件从暂存区移出(撤销 git add),保留工作区的修改。git reset --soft HEAD~1:撤销最近一次 commit,但保留修改在暂存区,方便重新提交。
5.3 解决合并冲突
当两个分支修改了同一个文件的相同部分时,执行 merge 会触发冲突:
1. 打开冲突文件,找到 <<<<<<<、=======、>>>>>>> 标记。
2. 手动编辑文件,决定保留哪部分代码或删除冲突标记。
3. 执行 git add <冲突文件>,然后 git commit 完成合并。
5.4 注意事项
- 不要混用工具:在建立仓库连接后,尽量一直使用 Git 命令行或统一工具,避免 Git 自带功能与其他版本控制工具混用导致报错。
- 先建个人仓库:若已加入组织,务必先 Fork/建立自己的远程仓库,再将本地文件推送到自己的仓库,避免直接覆盖团队主干代码。
