Git 全面使用教程

Git 全面使用教程

目录

  1. Git 简介
  2. 安装与配置
  3. 基础操作
  4. 分支管理
  5. 远程仓库
  6. 撤销与回退
  7. 标签管理
  8. 高级操作

Git 简介

Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,用于:

  • 追踪代码变更历史
  • 支持多人协作开发
  • 管理分支与版本
  • 实现代码回滚与恢复

安装与配置

1. 安装 Git

系统安装方法
WindowsGit for Windows
macOSbrew install git
Linuxsudo apt install git (Debian/Ubuntu) 或 sudo yum install git (CentOS)

2. 基础配置

# 设置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 查看所有配置
git config --list

# 设置默认编辑器(如VSCode)
git config --global core.editor "code --wait"

基础操作

1. 初始化仓库

git init                         # 初始化新仓库
git clone <remote-url>           # 克隆远程仓库

2. 文件状态管理

git status                       # 查看工作区状态
git add <file>                   # 添加文件到暂存区
git add .                        # 添加所有修改
git reset HEAD <file>            # 从暂存区移除文件

3. 提交更改

git commit -m "提交说明"          # 提交暂存区内容
git commit -am "提交说明"         # 跳过暂存区直接提交(仅限已跟踪文件)

4. 查看历史

git log                          # 完整提交历史
git log --oneline --graph        # 简洁版分支拓扑图
git show <commit-id>             # 查看某次提交的详情

分支管理

1. 分支操作

git branch                       # 查看本地分支
git branch <branch-name>         # 创建新分支
git checkout <branch-name>       # 切换分支
git checkout -b <branch-name>    # 创建并切换分支(推荐)
git branch -d <branch-name>      # 删除已合并的分支
git branch -D <branch-name>      # 强制删除未合并的分支

2. 合并与冲突

git merge <branch-name>          # 合并分支到当前分支
git merge --abort                # 终止合并冲突

冲突解决步骤

  1. 手动编辑冲突文件(<<<<<<<>>>>>>> 区域)
  2. git add <file> 标记为已解决
  3. git commit 完成合并

3. 变基(Rebase)

git rebase <branch-name>         # 将当前分支变基到目标分支
git rebase --abort               # 终止变基

远程仓库

1. 连接远程仓库

git remote add origin <url>      # 添加远程仓库
git remote -v                    # 查看远程仓库信息
git push -u origin main          # 首次推送并建立追踪

2. 推送与拉取

git push origin <branch-name>    # 推送本地提交
git pull origin <branch-name>    # 拉取并合并远程变更(= fetch + merge)
git fetch origin                 # 仅获取远程更新(不自动合并)

3. 解决远程冲突

# 当推送失败时:
git pull --rebase origin main    # 拉取远程更新并变基本地提交
git push origin main             # 重新推送

撤销与回退

1. 撤销工作区修改

git restore <file>               # 丢弃未暂存的修改(Git 2.23+)
git checkout -- <file>           # 传统方式撤销修改

2. 撤销暂存区文件

git restore --staged <file>      # 将文件移出暂存区(Git 2.23+)
git reset HEAD <file>            # 传统方式撤销暂存

3. 提交回退

git reset --soft HEAD~1          # 撤销提交但保留修改到暂存区
git reset --hard HEAD~1          # 彻底回退到上一个提交(慎用!)
git revert <commit-id>           # 创建新提交来撤销指定提交

标签管理

1. 创建标签

git tag v1.0.0                   # 轻量标签
git tag -a v1.0.0 -m "Release"   # 附注标签(推荐)

2. 操作标签

git tag                          # 查看所有标签
git show v1.0.0                  # 查看标签详情
git push origin v1.0.0           # 推送单个标签
git push origin --tags           # 推送所有标签
git tag -d v1.0.0                # 删除本地标签

高级操作

1. 贮藏(Stash)

git stash                        # 临时保存未提交的修改
git stash list                   # 查看贮藏列表
git stash pop                    # 恢复最近一次贮藏并删除记录
git stash apply stash@{0}        # 恢复指定贮藏(不删除记录)

2. 子模块(Submodule)

git submodule add <repo-url>     # 添加子模块
git submodule update --init      # 初始化子模块

3. 重写历史(慎用!)

git commit --amend               # 修改最近一次提交
git rebase -i HEAD~3             # 交互式变基(合并/修改提交)

4. 二分查找问题提交

git bisect start                 # 启动二分查找
git bisect bad                   # 标记当前提交为有问题
git bisect good <commit-id>      # 标记已知正常提交

常用工作流示例

1. 功能开发流程

git checkout -b feature/login    # 创建功能分支
git add . && git commit -m "完成登录功能"
git checkout main                # 切回主分支
git pull origin main             # 同步最新代码
git merge feature/login          # 合并功能分支
git push origin main             # 推送更新

2. 紧急修复流程

git checkout main
git pull origin main
git checkout -b hotfix/xxx       # 创建修复分支
# 进行修复并提交
git checkout main
git merge hotfix/xxx             # 合并修复
git tag v1.0.1                   # 打标签
git push origin main --tags      # 推送

提示

  • 使用 git <command> --help 查看命令帮助文档
  • 重要操作前建议先创建备份分支
  • 团队协作时优先使用 revert 代替 reset 避免历史覆盖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值