Git 从入门到实战:一篇搞定版本控制
在软件开发中,版本控制是必不可少的一环。Git 作为目前最流行的分布式版本控制系统,几乎是每位开发者的必备技能。本文将从零开始,带你全面掌握 Git 的核心概念与常用操作,包括安装配置、本地仓库管理、分支策略、远程仓库协作,以及在 IDE 中的集成使用。无论你是刚接触 Git 的小白,还是希望巩固基础的老手,相信都能从中受益。
一、Git 安装与基本配置
1. 安装 Git
前往Git 官网(https://git-scm.com/) 下载对应操作系统的安装包,按默认步骤安装即可。安装完成后,在任意文件夹右键打开 Git Bash(Windows)或终端(Mac/Linux)即可开始使用。
2. 初始化用户信息
Git 每次提交都会记录提交者的身份,因此需要先配置用户名和邮箱(可随意填写,不必真实):
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
配置完成后,可以验证是否成功:
git config --global user.name
git config --global user.email
3. 常用命令别名(可选)
为常用命令设置别名能极大提高效率。在用户目录下创建 `.bashrc` 文件(Windows 下可用 Git Bash 执行 `touch ~/.bashrc`),添加以下内容:
# 输出更美观的提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 列出当前目录所有文件(包含隐藏文件)
alias ll='ls -al'
保存后执行 `source ~/.bashrc` 使配置生效。
4. 解决 Git Bash 中文乱码
在 Git Bash 中执行:
git config --global core.quotepath false
然后找到 Git 安装目录下的 `etc/bash.bashrc` 文件,在末尾添加:
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
保存后重启 Git Bash,中文即可正常显示。
二、获取本地仓库
要使用 Git 对项目进行版本控制,首先需要创建一个本地仓库。
1. 新建一个文件夹(例如 `my-project`),进入该文件夹。
2. 右键打开 Git Bash,执行:
git init
3. 如果成功,文件夹下会出现一个隐藏的 `.git` 目录,这就是 Git 仓库的核心所在。
三、基础操作命令
Git 的本地工作区主要分为三个区域:工作区、暂存区、本地仓库。基本流程如下:
新建/修改文件 → 文件位于工作区
`git add` → 将更改添加到暂存区
`git commit` → 将暂存区内容提交到本地仓库,形成一个版本
常用命令
| 命令 | 说明 |
|---|---|
git status | 查看当前状态(哪些文件被修改、哪些在暂存区等) |
git add <file> | 将指定文件添加到暂存区 |
git add . | 将所有修改的文件添加到暂存区 |
git commit -m "提交说明" | 提交暂存区内容,必须附带说明信息 |
git log | 查看提交历史记录 |
git log --all --pretty=oneline --abbrev-commit --graph | 以图形化方式简洁显示所有分支的提交记录(可使用别名 git-log) |
git reset --hard <commit-id> | 回退到指定版本(commit-id 可通过 git log 或 git reflog 获取) |
git reflog | 查看所有历史操作记录,包括已删除的提交 |
忽略文件(.gitignore)
项目中有些文件不需要纳入版本控制(如日志、临时文件、编译输出等),可以在项目根目录创建 `.gitignore` 文件,并写入忽略规则:
# 忽略所有 .a 结尾的文件
*.a
# 忽略指定文件
file.txt
# 忽略整个目录
dir/
四、分支管理
分支是 Git 最强大的功能之一,它允许你在不影响主线(master/main)的情况下开发新功能、修复 bug。
1. 查看分支
git branch # 查看本地分支
git branch -r # 查看远程分支
git branch -a # 查看所有分支(本地+远程)
2. 创建与切换分支
git branch <branch-name> # 创建新分支
git checkout <branch-name> # 切换到指定分支
git checkout -b <branch-name> # 创建并切换到新分支(分支必须不存在)
3. 合并分支
# 将指定分支合并到当前分支
git merge <branch-name>
4. 删除分支
git branch -d <branch-name> # 安全删除(会检查是否已合并)
git branch -D <branch-name> # 强制删除(不检查)
5. 解决合并冲突
当两个分支修改了同一文件的同一部分时,合并就会产生冲突。冲突文件内容示例如下:
<<<<<<< HEAD
当前分支的内容
=======
合并过来的分支的内容
>>>>>>> other-branch
解决步骤:
1. 手动编辑文件,保留最终需要的内容,删除冲突标记。
2. 执行 `git add <file>` 将解决后的文件加入暂存区。
3. 执行 `git commit` 完成合并。
6. 开发中的分支使用原则
在实际开发中,通常遵循以下分支模型(以 Git Flow 为例):
master(生产)分支:线上运行代码,非常稳定,只接受经过测试的合并。
develop(开发)分支:日常开发主分支,所有功能分支都基于此创建。
feature/xxx 分支:用于开发新功能,从 develop 派生,完成后合并回 develop。
hotfix/xxx 分支:紧急修复线上 bug,从 master 派生,修复后合并回 master 和 develop。
其他分支:如 test(测试)、pre(预发布)等,根据团队需求灵活添加。
五、远程仓库
远程仓库是代码托管的中央仓库,常见的有 GitHub、Gitee(码云)、GitLab 等。下面以码云为例介绍远程仓库的使用。
1. 搭建远程仓库
1. 登录码云,点击右上角“+” → “新建仓库”。
2. 填写仓库名称、介绍,其他保持默认,点击“创建”。
3. 配置 SSH 公钥(便于免密操作):
- 在 Git Bash 中生成密钥:`ssh-keygen -t rsa`(一路回车)。
- 获取公钥:`cat ~/.ssh/id_rsa.pub`。
- 将输出的内容复制到码云的“设置”→“SSH公钥”中,添加即可。
- 验证:`ssh -T git@gitee.com`,若出现 `Hi xxx! You've successfully authenticated...` 表示成功。
4. 关联本地仓库与远程仓库:
git remote add origin <远程仓库地址(SSH)>
`origin` 是远程仓库的别名,通常约定使用此名称。
5. 查看远程仓库:`git remote`
2. 常用远程操作
| 命令 | 说明 |
|---|---|
git push origin <本地分支>:<远程分支> | 将本地分支推送到远程仓库 |
git push -f origin <分支> | 强制覆盖推送(慎用) |
git push --set-upstream origin <分支> | 推送并建立本地分支与远程分支的关联 |
git clone <仓库地址> | 克隆整个远程仓库到本地 |
git fetch origin | 抓取远程更新(不自动合并) |
git pull origin | 拉取远程更新并自动合并(等同于 fetch + merge) |
当本地分支与远程分支关联后,直接执行 `git push` 或 `git pull` 即可。
3. 解决远程分支合并冲突
场景:A 用户推送了某个文件,B 用户也修改了同一文件并尝试推送,此时会因远程分支有更新而拒绝推送。
解决步骤:
1. B 用户先执行 `git pull origin <分支>`,将远程更新拉取到本地。
2. 如果产生冲突,按本地冲突解决方法处理(编辑 → add → commit)。
3. 再次执行 `git push`。
六、在 IDE 中使用 Git(以 Goland 为例)
大多数现代 IDE 都内置了 Git 支持,这里以 JetBrains 的 Goland 为例:
1. 配置 Git:打开 `Settings` → `Version Control` → `Git`,如果自动检测不到 Git 路径,可以手动指定 `git.exe` 所在路径。
2. 使用:
- 在 IDE 中可以看到文件颜色变化(红色未跟踪,绿色暂存,蓝色修改等)。
- 可以通过工具栏按钮进行 commit、push、pull 等操作。
- 注意事项:
- 切换分支前务必提交或暂存当前修改。
- 及时提交代码,避免丢失工作。
- 遇到任何问题不要直接删除项目目录,优先尝试 IDE 或 Git 命令恢复。
七、Git 使用小技巧
1. 快捷复制粘贴:在 Git Bash 中,**双击鼠标左键**即可自动复制选中的文本,粘贴时只需**按下鼠标滚轮**(中键)。注意不要按 Ctrl+C,那会中断当前命令。
2. 查看简洁日志:使用前面配置的 `git-log` 别名,可以一目了然地看到分支拓扑和提交信息。
3. 撤销未提交的修改:
- `git checkout -- <file>` 丢弃工作区的修改。
- `git reset HEAD <file>` 将暂存区的文件撤回到工作区。
4. 查看本地分支与远程分支的关联:
git branch -vv
更多推荐




所有评论(0)