Git 入门教程
前言:
在进行git学习之前,你得先有一个属于自己的gitte 账号哈!
Gitee - 基于 Git 的代码托管和研发协作平台 点击链接进行注册。
1.基础知识
Git 是一个分布式版本控制系统(Distributed Version Control System),主要用于跟踪文件(尤其是代码文件)的修改历史,方便多人协作开发以及管理项目的不同版本。
核心功能:
- 版本控制:记录文件的每一次修改,可随时回退到历史版本。
- 分布式协作:每个开发者都可拥有完整的代码仓库副本,无需依赖中央服务器即可工作。
- 分支管理:支持创建多个独立分支(如开发分支、功能分支、修复分支),分支间可合并,不影响主代码。
- 冲突解决:多人修改同一文件时,能智能检测冲突并辅助解决。
常用基础命令:
git init:在当前目录初始化一个新的 Git 仓库。git clone <仓库地址>:克隆远程仓库到本地。git add <文件>:将文件添加到暂存区(准备提交)。git commit -m "提交说明":将暂存区的修改提交到本地仓库,附带说明信息。git status:查看当前仓库的文件状态(已修改、已暂存、未跟踪等)。git log:查看提交历史记录。git branch:查看本地分支;git branch <分支名>创建新分支。git checkout <分支名>:切换到指定分支(新版可用git switch <分支名>)。git merge <分支名>:将指定分支合并到当前分支。git push:将本地仓库的修改推送到远程仓库。git pull:拉取远程仓库的最新修改到本地并合并。
补充:git status 是 Git 的“实时仪表盘”:
它告诉你当前工作区(working directory)与暂存区(index)相对于最后一次提交(HEAD)的差异,并用 “三栏提示” 展示:
-
Changes to be committed
已git add进暂存区、下次git commit会被写进版本库的文件(绿色显示)。 -
Changes not staged for commit
工作区里被改过、但还没git add的文件(红色显示)。
再跑git add <file>即可把它挪到第一栏。 -
Untracked files
既不在版本库、也没进暂存区的新文件(通常也是红色)。
想纳入版本控制就git add <file>;不想管可写.gitignore。
认识⼯作区、暂存区、版本库
• ⼯作区:是在电脑上你要写代码或⽂件的⽬录。
• 暂存区:英⽂叫 stage 或 index。⼀般存放在 .git ⽬录下的 index ⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)。
• 版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是 Git的版本库。这个版本库⾥⾯的所有⽂件都可以被 Git 管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。下⾯这个图展⽰了⼯作区、暂存区和版本库之间的关系:

2.Git 安装
Linux-ubuntu:
1. 检查是否已经安装: 输入 git 结果如下说明没有安装

2.安装 Git:
sudo apt-get install git -y
3.检查安装版本
git --version

ok,如此你便安装完成了!
3.Git 基本操作
1. 创建 Git 本地仓库
命令为: git init

我这里已经有了,所有如果你是第一次创建,会和我的输出有所不同,其中 .git 文件便是 git init 命令创建出来的。

进入 .git 目录,以树状结构展示如上。
注意:.git ⽬录是 Git 来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把 Git 仓库给破坏了,如果破坏了后面就用不了了。
2.配置 Git
a)安装 Git 后⾸先要做的事情是设置你的 ⽤⼾名称 和 e-mail 地址,配置命令为:
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
# 把 Your Name 改成你的昵称 [--global] 可选项
# 把 email@example.com 改成邮箱的格式,只要格式正确即可
加上 --global:全局设置(一台电脑所有仓库都用这个身份)
不加 --global:仅当前仓库设置
b)查看配置内容: git config -l

c)删除配置命令:
git config [--global] --unset user.name
git config [--global] --unset user.email
4.⽂件添加到暂存区
- 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] ...
- 添加指定⽬录到暂存区,包括⼦⽬录: git add [dir]
- 添加当前⽬录下的所有⽂件改动到暂存区: git add .
创建一个 gitTestDemo 文件夹,进入gitTestDemo 文件夹,创建 demo1 文件,文件内容为:hello git! ,最后提交


如果你第一次使用,这里你再去查看 .git 文件,文件是会有所改变的。
5.暂存区内容添加到本地仓库
- 提交暂存区全部内容到本地仓库中: git commit -m "message"
- 提交暂存区的指定⽂件到仓库区: git commit [file1] [file2] ... -m "message"
注意:git commit 后⾯的 -m 选项,要跟上描述本次提交的 message,由⽤⼾⾃⼰完成,这部分内容绝对不能省略,并要好好描述,是⽤来记录你的提交细节(描述这段代码是干什么的),是给我们⼈看的

6.查看日志
- git log
- git log --pretty=online (方便观察)


补充:
添加完成后:
我们查看 .git 目录

1. index 就是我们的暂存区,add 后的内容都是添加到这⾥的。
2. HEAD 就是我们的默认指向 master 分⽀的指针:

⽽默认的 master 分⽀,其实就是:(最新的版本号)
![]()
3.objects 为 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容。当执⾏ git add 命令 时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的 对象中,就位于 ".git/objects" ⽬录下,让我们来看看这些对象有何⽤处:

如上我们便查询到了最新一次提交的记录。
再查看 tree 对应的 commit id (版本号)

最后我们查询到了最初在demo1中输入的 hello git!
- index: 暂存区, git add 后会更新该内容。
- HEAD: 默认指向 master 分⽀的⼀个指针。
- refs/heads/master: ⽂件⾥保存当前 master 分⽀的最新 commit id 。
- objects: 包含了创建的各种版本库对象及内容,可以简单理解为放了 git 维护的所有修改。
7.修改⽂件
8.查看不同
- git diff [file] 命令⽤来显⽰暂存区和⼯作区⽂件的差异,显⽰的格式正是Unix通⽤的diff格式。
- git diff HEAD -- [file] 命令来查看版本库和⼯作区⽂件的区别。
如下:在输入命令之前,我提前修改了,发现如图类似说明,版本库与工作区有差异。
4.版本回退
- --mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。
- --soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
- --hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命 令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。
- HEAD 表⽰当前版本
- HEAD^ 上⼀个版本
- HEAD^^ 上上⼀个版本
- 以此类推...
- HEAD~0 表⽰当前版本
- HEAD~1 上⼀个版本
- HEAD^2 上上⼀个版本
- 以此类推...
我们提交了三个版本,version1、version2、version3




5.撤销修改
情况⼀:对于⼯作区的代码,还没有 add(如下图所示)
- 方法一:手动删除(适合改动较少时)
- 方法二:git checkout -- [file] 命令让⼯作区的⽂件回到最近⼀次 add 或 commit 时的状态。 要注意 git checkout -- [file] 命令中的-- 很重要,切记不要省略,⼀旦省略,该命令就变为其他意思了。

情况⼆:已经 add ,但没有 commit

步骤一:git reset 回退命令 (--mixed 为默认选项)

步骤二: (这里回到 情况⼀)git checkout -- [file]

情况三:已经 add ,并且也 commit 了

开始回退:

6.删除⽂件
现在我们想要删除 demo1 这个文件
错误删除:

如上只是删除了工作区的,暂存区和版本区还是存在的
使用 git checkout -- filename 恢复

正确删除:
git rm filename 命令


进阶版本:博主后续更新!
时间过得好快! 祝愿我们都能拿到一个理想中的 offer。 冲冲冲!
