Git 学习笔记

一、版本控制系统简介

  • 定义

    :版本控制系统用于跟踪和管理文件的修改历史,特别适合团队协作开发和代码管理。主要包括以下类型:

    • 本地版本控制:仅在单机环境记录文件的历史。
    • 集中式版本控制:如SVN,所有历史记录存储在中央服务器上。
    • 分布式版本控制:如Git,每个用户都有完整的代码仓库副本,支持离线操作。
  • Git 的特点:速度快、分布式、支持分支操作、方便代码合并。

二、安装与基本配置

  • 安装 Git
    • Git 官网 下载并安装适合的版本。
    • 安装完成后,在终端执行git --version确认安装成功。
  • 基本配置
    • 配置用户名:git config --global user.name "Your Name"
    • 配置邮箱:git config --global user.email "your_email@example.com"
    • 查看配置:git config --list

三、仓库初始化与管理

  • 初始化本地仓库
    • 进入项目目录,执行git init
    • 初始化后,会生成一个.git目录,用于存储版本控制信息。
  • 克隆远程仓库
    • 使用git clone [repository_url]将远程仓库完整复制到本地。
    • 包含所有历史记录和分支信息。

四、文件跟踪与提交

  • 查看状态
    • 使用git status查看当前文件的状态,了解哪些文件被修改或未被跟踪。
  • 添加文件到暂存区
    • 单个文件:git add [file]
    • 当前目录所有文件:git add .
  • 提交到本地仓库
    • git commit -m "commit message"提交暂存区的更改到仓库。
  • 查看提交历史
    • 简单查看:git log
    • 单行显示:git log --oneline

五、分支与合并

  • 分支操作
    • 创建新分支:git branch [branch-name]
    • 切换分支:git checkout [branch-name]
    • 创建并切换:git checkout -b [branch-name]
  • 合并分支
    • 在目标分支执行git merge [branch-name]将指定分支合并。
    • 合并冲突需手动解决,解决后执行git add .并提交。
  • 删除分支
    • 已合并分支:git branch -d [branch-name]
    • 强制删除:git branch -D [branch-name]

六、远程仓库操作

  • 关联远程仓库
    • git remote add origin [url]将本地仓库与远程仓库关联。
  • 推送更改
    • 首次推送:git push -u origin [branch-name]
    • 之后推送:git push
  • 拉取更新
    • git pull从远程仓库获取最新版本并尝试合并到当前分支。

七、标签管理

  • 创建标签
    • 简单标签:git tag [tag-name]
    • 带说明标签:git tag -a [tag-name] -m "message"
  • 查看标签
    • 列出标签:git tag
  • 推送标签
    • 单个标签:git push origin [tag-name]
    • 所有标签:git push origin --tags

八、撤销与恢复

  • 撤销修改
    • 丢弃工作区更改:git checkout -- [file]
    • 清除整个工作区更改:git checkout -- .
  • 撤销暂存
    • 将暂存区更改退回工作区:git reset HEAD [file]
  • 回退版本
    • 强制回退:git reset --hard [commit-id],丢失后续提交。

九、查看差异

  • 文件差异
    • 工作区与暂存区:git diff
    • 暂存区与仓库:git diff --cached
    • 工作区与仓库:git diff HEAD
  • 分支差异
    • git diff [branch1] [branch2]

十、实用技巧

  • 暂存部分修改
    • git add -p交互式选择部分修改。
  • 忽略文件
    • 创建.gitignore文件,添加不需要跟踪的文件或目录。
    • 检查生效:git status中显示忽略文件状态。