Git版本控制器

📅 2026/7/23 12:40:57 👁️ 阅读次数 📝 编程学习
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/建立自己的远程仓库,再将本地文件推送到自己的仓库,避免直接覆盖团队主干代码。