Git 学习笔记

3 阅读4分钟

一、为什么要学习 Git?(核心作用)

1. 传统本地文件的痛点

我们平时直接写代码、存文件夹,会遇到四大致命问题:

  • 硬盘损坏、文件误删:代码直接丢失,无法找回
  • 修改代码后忘记改了哪里:没有记录,无法对比新旧版本
  • 版本混乱:项目 v1、v2、最终版、最终版真的最终,文件杂乱
  • 多人协作极其混乱:多人改同一个文件,无法合并、容易覆盖代码

2. Git 的本质

Git 是一款 分布式版本控制系统

它把普通的「文件文件夹」升级为「可追踪、可回溯、可备份、可多人协作」的项目仓库。

核心原理:对项目进行一次次「快照保存」,每一次提交都是一个完整版本。

3. Git 只管什么?

Git 只管理项目文件(代码、文档、配置),不管理软件、环境、系统。


二、Git 架构:分布式协作原理

1. 两大仓库体系

  • 本地仓库:每个人电脑上的仓库,独立、完整、离线可用
  • 远程中央仓库:云端仓库,用来统一汇总所有人代码

2. 常用远程仓库平台

  • GitHub:国外,开源项目最多
  • Gitee 码云:国内,访问速度快,国内开发首选

3. 多人协作模式

A、B、C 多名开发者,每个人本地都有完整仓库,写完代码统一推送到中央远程仓库,实现代码统一管理。


三、Git 工作区域与文件状态(重中之重)

1. Git 三大工作区

  1. 工作区:你电脑看得见的项目文件夹,写代码的地方
  2. 暂存区(stage) :临时缓存区,存放即将提交的文件
  3. 本地仓库:.git 目录,永久保存版本快照,可回溯

2. 文件四种状态流转

未跟踪(untracked)→ 暂存(staged)→ 已提交(committed)→ 新版本

  • 未跟踪:新建文件,Git 还没接管
  • 已修改:旧文件改动了,但没放入暂存
  • 已暂存:执行 add 后,等待提交
  • 已提交:保存到本地仓库,生成永久版本

四、Git 本地仓库完整初始化流程

1. 环境说明

使用 Git Bash 操作,是一个微型 Linux 命令行环境。

2. 全局用户配置(只需配置一次电脑)

作用:标记代码是谁提交的,必须配置,否则首次提交报错。

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

--global 代表全局:所有项目都生效

3. 初始化本地仓库 git init

git init

执行后,当前普通文件夹 → Git 本地仓库

生成隐藏目录 .git

  • 仓库核心文件夹,保存所有版本、快照、记录
  • 绝对不能手动修改、删除,否则仓库损坏

五、最核心三大命令(日常必用)

1. git status 查看仓库状态

git status

使用原则:任何操作前,先看 status

作用:查看当前哪些文件未跟踪、哪些已修改、哪些待提交。

2. git add 添加到暂存区

# 单个文件加入暂存
git add readme.md

# 所有文件全部加入暂存
git add .

场景:新建的文件是 untracked 未跟踪状态,必须 add 让 Git 接管。

执行后状态变为:to be committed 等待提交

3. git commit 生成版本快照

git commit -m "wrote a readme file"

作用:把暂存区的代码,永久保存到本地仓库,生成一个版本快照。

输出提示:2 insertions 代表新增了2行代码,说明提交成功。

完整本地流程总结

新建项目文件夹 → git init → 写代码 → git add → git commit(生成第一个版本)


六、远程仓库关联与推送

1. 核心概念

  • remote:远程仓库
  • origin:远程仓库默认别名(固定叫法)
  • push:推送,把本地版本上传到云端

2. 关联远程仓库

git remote add origin 你的远程仓库地址

作用:让本地仓库绑定 GitHub/Gitee 远程仓库

3. 推送到远程仓库

# 推送到主分支
git push origin main
# 旧版本默认分支
git push origin master

七、代码冲突问题(课堂重点)

1. 冲突产生原因

多人协作时,多个人同时修改同一个文件的同一行代码,先后推送远程仓库,Git 无法自动合并,就会产生冲突。

2. 冲突解决方式

需要开发者 手动对比代码、保留正确代码、删除冲突标记,重新 add、commit、push。


八、Git 完整工作流程(终极总结)

  1. 电脑初次配置用户名、邮箱
  2. 文件夹初始化仓库:git init
  3. 编写项目代码
  4. 查看状态:git status
  5. 添加暂存:git add .
  6. 提交版本:git commit -m "版本说明"
  7. 关联远程仓库
  8. 推送云端:git push