GIT 安装与使用
Git 简介与作用
Git 是一个用来管理代码和文件的工具,就像是一个超级记事本,可以记录你对文件做的所有修改。它的主要作用是:
- 记录文件的所有修改历史,你可以随时查看或回到之前的版本
- 让多人可以同时开发同一个项目,而不会互相影响
- 可以创建不同的分支来开发新功能,开发完成后再合并到主项目
简单来说,Git 就是一个帮你管理代码版本、方便团队协作的工具。它最初是由 Linux 的创始人 Linus Torvalds 开发的,现在已经成为最流行的版本控制工具。
安装指南
Windows 安装
- 访问 Git 官网下载页面:https://git-scm.com/download/win
- 下载 Windows 安装程序
- 运行安装程序,按照向导完成安装
- 安装完成后,打开命令提示符或 PowerShell,输入
git --version验证安装
基础配置
全局配置
# 设置用户名和邮箱
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 设置默认编辑器
git config --global core.editor "vim"
# 设置默认分支名
git config --global init.defaultBranch main
常用配置
# 设置自动着色
git config --global color.ui true
# 设置换行符处理
git config --global core.autocrlf input # Linux/Mac
git config --global core.autocrlf true # Windows
# 设置常用命令别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
基本使用
创建仓库
# 初始化新仓库
git init
# 克隆远程仓库
git clone <repository-url>
基本操作
# 查看状态
git status
# 添加文件到暂存区
git add <file>
git add . # 添加所有文件
# 提交更改
git commit -m "提交说明"
# 查看提交历史
git log
分支操作
# 创建分支
git branch <branch-name>
# 切换分支
git checkout <branch-name>
git switch <branch-name> # Git 2.23+
# 创建并切换分支
git checkout -b <branch-name>
# 合并分支
git merge <branch-name>
远程操作
远程仓库管理
# 添加远程仓库
git remote add origin <repository-url>
# 查看远程仓库
git remote -v
# 推送代码
git push origin <branch-name>
# 拉取代码
git pull origin <branch-name>
协作工作流
- 从远程仓库拉取最新代码
- 创建功能分支进行开发
- 提交更改并推送到远程
- 创建 Pull Request 请求合并
高级特性
暂存操作
# 暂存当前修改
git stash
# 查看暂存列表
git stash list
# 应用暂存
git stash apply
git stash pop # 应用并删除
撤销操作
# 撤销工作区修改
git checkout -- <file>
# 撤销暂存区修改
git reset HEAD <file>
# 撤销提交
git reset --soft HEAD^ # 保留修改
git reset --hard HEAD^ # 删除修改
标签管理
# 创建标签
git tag <tag-name>
# 创建带注释的标签
git tag -a <tag-name> -m "标签说明"
# 推送标签
git push origin <tag-name>
常见问题解决
配置问题
# 查看所有配置
git config --list
# 重置配置
git config --global --unset <key>
合并冲突
当多人同时修改同一个文件的同一个部分时,Git 无法自动决定保留哪个版本,这时就会产生合并冲突。以下是处理合并冲突的步骤:
识别冲突
# 查看冲突文件 git status冲突文件会显示为 "both modified" 状态
解决冲突
- 打开冲突文件,你会看到类似这样的标记:
<<<<<<< HEAD 你的修改 ======= 其他人的修改 >>>>>>> branch-name - 手动编辑文件,选择要保留的代码
- 删除冲突标记(<<<<<<< HEAD, =======, >>>>>>> branch-name)
- 打开冲突文件,你会看到类似这样的标记:
标记解决
# 解决完冲突后,将文件添加到暂存区 git add <conflicted-file>完成合并
# 提交合并结果 git commit -m "解决合并冲突"预防冲突的建议
- 经常从主分支拉取更新
- 与团队成员沟通修改范围
- 使用小粒度的提交
- 及时处理冲突,不要积累
使用工具解决冲突
- 使用 VS Code、IntelliJ IDEA 等编辑器的内置合并工具
- 使用专门的合并工具如 Beyond Compare、KDiff3
- 使用
git mergetool命令启动配置的合并工具
放弃合并
# 如果合并太复杂,可以放弃本次合并 git merge --abort
版本回滚操作
有时候我们需要回到之前的某个版本,比如发现新代码有问题,或者想看看之前的代码是什么样的。以下是常用的回滚操作:
查看历史版本
# 查看所有提交记录 git log每条记录都会显示一个 commit id(类似 abc1234),这就是版本的唯一标识。
回滚到之前的版本
# 方式一:保留修改内容(推荐) git reset --soft <commit-id> # 方式二:完全删除修改内容(谨慎使用) git reset --hard <commit-id>--soft:回滚后,你的修改还在,只是回到了未提交的状态--hard:回滚后,你的修改会被完全删除,请谨慎使用
回滚到上一个版本
# 回滚到上一个版本 git reset --hard HEAD^HEAD^表示上一个版本,HEAD^^表示上上个版本如果回滚错了,想恢复
# 查看所有操作记录 git reflog # 恢复到指定版本 git reset --hard <commit-id>reflog可以查看所有的操作记录,包括已经回滚的版本只回滚某个文件
# 恢复某个文件到指定版本 git checkout <commit-id> <文件名>这样只会恢复指定的文件,其他文件保持不变
回滚远程仓库
# 强制推送到远程 git push -f origin <分支名>注意:强制推送会影响其他同事,使用前请先沟通
回滚前的小建议
- 回滚前最好先创建一个新分支,以防万一
- 使用
--soft回滚更安全,因为不会丢失代码 - 如果回滚远程仓库,一定要先和团队沟通
