git(基于b站狂神说学习)【未完结】

b站地址

博客里面的截图来源于视频,该博客的文字来源于视频+ai+个人理解

版本控制

1.本地版本控制

适合个人用

2.集中版本控制

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS

3.分布式(git)

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史 ,可以离线在本地提交 ,只需在连网时push到相应的服务器或其他用户 那里。由于每个用户那里保存的都是所有的版本数据 ,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用

每个人都有全部的代码;安全隐患

与SVN区别

聊聊Git历史

Git安装及环境配置

git网址

最新的淘宝镜像

|----------------------------------------------------------|---|
| npm config set registry https://registry.npmmirror.com | |

  • 所有 npm install

  • 所有安装包

  • 所有更新

    正确规则是:

    ✔ 镜像有的包 → 直接从镜像下

    ✔ 镜像没有 的包 → 直接报错,不会自动去官方源

    但你完全不用担心!因为:

    👉 淘宝镜像是 100% 全量同步官方 NPM 的

    全世界所有 npm 包,它都有,实时同步

全部 自动走国内淘宝镜像 👉 速度快、稳定、不报错、不卡顿

取消镜像 = 切回官方 NPM 源

你只需要在终端输入这 一行命令

复制代码
npm config set registry https://registry.npmjs.org

镜像源的话找64位的下

卸载

去环境变量的系统变量删掉git的【环境变量只是为了全局使用】,然后控制面板卸载

安装

然后无脑下一步安装,除了安装目录可以改成自己的

文本变量默认使用vm,新手优先选 VS Code

安装完毕就可以使用

出现上面这个就是成功,桌面右键就也出现相关的

Git Bash:Unix与Linux风格的命令行,使用最多**,推荐最多**

Git CMD:Windows风格的命令行

GitGUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

Git基本理论

命令 作用 适用场景 保留历史记录 重置终端状态
clear/cls(windowsx下) 清屏 日常清理,只是想隐藏之前的内容 ✅ 是(往上滚能看到) ❌ 否
reset 重置终端 + 清屏 终端异常(乱码、卡住、无响应) ❌ 否(彻底重置,无法恢复) ✅ 是

rm -rf /会删除电脑整个文件,不要尝试

Git必要配置

复制代码
git config -l = 显示全部配置(系统 + 全局 + 本地)
git config --global --list = 只看你自己的配置(最常用)
git config --system --list = 看电脑所有用户的配置(几乎不用)
 设置用户名和邮箱:

git config -l

可以看到当前项目下面所有的配置

git config --system --list

系统配置,不会出现用户配置

git config --global --list = 只看你自己的配置(最常用)

下面这段表面自己的git身份凭证

复制代码
user.name=kuangshen
user.email=24736743@qq.com

记住:

所有的配置文件都保存在本地

系统级:Git下

用户级:user下

编辑器配置(修改提交信息时用)

  • core.editor="" --wait你把 VS Code 设置成了 Git 的默认编辑器。
    • 当你执行 git commit 时,会自动用 VS Code 打开提交信息编辑页面
    • --wait 表示 Git 会等待你关闭 VS Code 后,再继续执行提交操作,这是标准配置。

凭证与网络配置(和 Gitee 相关)

  • credential.https://gitee.com.provider=generic开启了 Gitee 的凭证管理,这样你每次推送代码时,Git 会自动保存你的账号密码,不用重复输入。
  • http.sslbackend=schannel指定了 Git 使用 Windows 系统自带的 SSL 证书来处理 HTTPS 请求,避免因证书问题导致推送失败,这是 Windows 上的标准配置。

设置用户名和邮箱

Git工作原理【重点】

add:暂存区,并没有永久保存 checkout:从暂存区 / 本地仓库恢复文件到工作区/切换分支

commit:提交到本地仓库 reset:回退版本(撤销 commit)

push:提交到远程仓库 pull:远程代码拉本地

clone:远程仓库完整下载到本地(第一次下载用)

git add . 把所有修改暂存

git commit -m "添加首页代码" 就是给这次提交写个备注,告诉别人你改了什么

git push origin main 就是把你的代码上传到 Gitee/GitHub'

git reset --soft HEAD~1 :撤销上一次的提交(commit),但保留你写的所有代码 ,把代码放回暂存区 。

重点:HEAD 到底是什么

HEAD 就是一个 "指针",指向你本地仓库里当前所在的版本。

你可以这么理解:

  • 本地仓库里有很多次提交,就像一串 "历史快照"
  • HEAD 就是你当前正在看的那一张快照的标记
  • 正常情况下,它会一直指向最新的一次提交版本 ,也就是你圈出来的这句话: 其中 HEAD 指向最新放入仓库的版本

举个例子:

  1. 你第一次提交代码,版本号是 commit A → HEAD 指向 A
  2. 你第二次修改代码并提交,版本号是 commit B → HEAD 自动移动,指向最新的 B
  3. 你用 git reset 回到 A 版本 → HEAD 就会移动回去,指向 A

git项目创建及克隆

先记住这6个命令

1.本地仓库搭建

2.克隆远程

区别

git clone第一次下载整个仓库git pull后续更新本地仓库,两者使用场景完全不同。

特性 git clone git pull
作用 从远程仓库完整复制整个项目到本地 从远程仓库拉取最新代码,更新本地已有的项目
使用时机 你电脑上还没有这个项目,第一次获取代码时 你电脑上已经有项目,需要同步远程最新修改时
效果 下载所有文件、提交历史、分支记录,直接生成完整的本地仓库 只拉取远程新增的提交,合并到当前本地分支
前提条件 本地没有对应项目 本地已有项目,且已关联远程仓库
典型命令 git clone https://gitee.com/xxx/xxx.git git pull origin main

Git文件操作

这个作为了解,后面多用就知道了

状态 中文含义 说明
Untracked 未跟踪 文件在电脑里,但Git 根本没管它,不参与版本控制
Unmodify 已入库未修改 文件已经被 Git 管理,且本地文件和仓库里的版本一模一样
Modified 已修改 文件被 Git 管理,但你改了内容,本地文件和仓库版本不一样
Staged 已暂存 修改后的文件被你 git add 了,准备提交到仓库

未添加到git的文件是Untracked,添加后会到Staged,

之后没改动就是Unmodify,改动未提交就是Modified,

提交到暂存区就是Staged

决策是否还需要这个文件:git rm index.html就是把文件从 Git 版本库中移除

修改过程中: git checkout -- 文件名,丢弃修改,不要这个修改了的文件,修 改前的文件有保存

暂存后,回到工作区: git reset HEAD index.html,取消暂存,继续修改

git忽略文件

注意

并不是所有项目都要提交

.gitignore文件

.gitignore 是干嘛的?

它是 Git 的「忽略清单」,放在项目根目录,用来告诉 Git:哪些文件 / 文件夹不要纳入版本控制、不要提交到仓库。常见用途:

  • 临时文件(日志、缓存)
  • 编译产物(build/、target/)
  • 敏感配置(密码文件、本地环境变量)
  • IDE / 系统文件(.idea/、.DS_Store)
5 条核心规则逐条解释
  1. 空行 / # 开头的行是注释
  • 空行:Git 会直接跳过,不生效
  • # 开头:整行是注释,用来写说明,不影响实际效果

gitignore

复制代码
# 这是注释,Git 会忽略
*.log  # 这行的后半部分是注释,前面的 *.log 会生效

  1. 支持 Linux 通配符(批量匹配文件)

表格

通配符 作用 例子
* 匹配任意多个字符(包括 0 个) *.txt 匹配所有 .txt 文件(a.txtb.txt 都匹配)
? 匹配任意一个字符 file?.txt 匹配 file1.txtfilea.txt,但不匹配 file12.txt
[abc] 匹配括号里的任意一个字符 file[ab].txt 匹配 filea.txtfileb.txt
{a,b} 匹配括号里的任意一个字符串 *.{log,txt} 匹配 .log.txt 文件

  1. ! 开头:例外规则("除了这个都忽略")

前面写了忽略规则,后面用 ! 可以把特定文件 "救回来",不被忽略。⚠️ 注意:规则顺序不能反,必须先写忽略规则,再写 ! 例外规则

例子:

gitignore

复制代码
*.txt       # 忽略所有 .txt 文件
!lib.txt    # 但 lib.txt 除外,会被 Git 追踪

结果:a.txt 被忽略,lib.txt 正常提交。


  1. / 开头:只匹配项目根目录的文件

规则前面加 /,表示只匹配项目根目录下的文件 / 文件夹,子目录里的同名文件不受影响。

例子:

复制代码
/temp       # 只忽略项目根目录下的 temp 文件夹

结果:

项目根目录的 /temp/ 会被忽略
子目录里的 /src/temp/ 不会被忽略

理解:
假设你的项目结构是这样:

你的项目/
├── temp/      <-- 根目录的 temp
├── src/
│   └── temp/  <-- src 里面的 temp
└── index.html

/temp:只忽略 根目录的 temp/;
 src/temp/ 不会被忽略!还能正常提交!
temp:所有叫 temp 的文件夹 全部忽略!不管在根目录、src 里、a/b/c 里,全部忽略

即:
/temp = 只忽略【最外面】的 temp
temp = 忽略【所有地方】的 temp

  1. / 结尾:表示要忽略的是整个目录

规则后面加 /,表示要忽略的是整个目录,而不是单个文件。

例子:

gitignore

复制代码
build/      # 忽略 build/ 目录下的所有文件和子目录

结果:build/ 文件夹里的所有内容都不会被提交。

通用 .gitignore 模板

IDE 文件

.idea/

.vscode/ *.iml # 编译产物 build/ dist/ target/ # 日志文件 *.log logs/ # 临时文件 *.tmp *.swp # 系统文件 .DS_Store Thumbs.db

使用码云【使用+注册】

gotlab公司自己搭建的服务器,下载部署到linux即可

首先

尊重版权,然后下方会有相关的教学配置

然后

1.注册账号并在个人设置完善个人信息
2.设置本机绑定SSH公钥,实现免密码登录!

免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!

进入 C:\Users\Administrator\.ssh 目录

生成公钥

ssh-keygen

本地添加密钥

bash 复制代码
ssh-kevaen -t rsal

生成后就会有对应的文件

上面是公钥

下面是私钥

然后直接粘贴过来gitee的公钥,粘贴好后是默认标题的

3、将公钥信息publickey添加到码云账户中即可!

然后你的码云就和本地仓库建立联系

4、使用码云创建一个自己的仓库!

许可证:开源是否可以随意转载,开源但是不能商业使用,不能转载,...限制!

3.创建后本地开发

IDEA中集成Git操作

关于Git中分支说明

Git后续操作说明

多人协作

1.多模块开发

各自写不同模块 / 不同文件(最常见)

  • A 写用户模块(user.js)
  • B 写订单模块 (order.js)两人修改完全不同文件 👉 先后提交 0 冲突,直接合并成功,代码正常运行。

改同一文件同一行

  • 只改不同行:无冲突,自动合并
  • 改同一文件同一行 :Git 分不清留谁的代码 → 产生代码冲突

2.公司标准多人协作流程(防冲突)

  1. 所有人先拉最新代码 git pull 再写代码
  2. 每个人新建独立功能分支开发,不在主分支硬写
  3. 写完提交自己分支,提合并请求
  4. 合并前自动检测冲突,有冲突先本地解决再合并
  5. 合并后主分支代码统一、能正常运行

3.极简多人协作 Git 命令

一、第一次拉项目

bash

复制代码
git clone 仓库地址

二、日常开发标准流程

  1. 切到主分支,拉取最新代码

bash

复制代码
git checkout main
git pull
  1. 新建自己功能分支(每人单独分支)

bash

复制代码
git checkout -b 你的分支名
  1. 写完代码,暂存 + 提交

bash

复制代码
git add .
git commit -m "写清楚功能内容"
  1. 拉取主分支最新代码(防冲突必做)

bash

复制代码
git pull origin main
  • 出现冲突:打开文件手动改完,再执行

bash

复制代码
git add .
git commit -m "解决冲突"
  1. 推送自己分支到远程

bash

复制代码
git push origin 你的分支名

三、合并代码(提 PR / 合并到主分支)

  1. 网页端提交 合并请求
  2. 别人审核通过后合并
  3. 所有人下次开发先 git pull 更新

四、常用快捷命令

  • 查看分支:git branch
  • 切换分支:git checkout 分支名
  • 放弃本地修改:git reset --hard

五、避坑口诀

先拉代码再开发,单独分支不乱改;不同文件无冲突,同文件同行才打架;提交前先合并主干 ,冲突本地解决完再推送

相关推荐
前端若水9 小时前
本专栏学习路线图与里程碑项目规划
大数据·人工智能·学习
百万老师9 小时前
自然语言编程时代,如何零基础学习掌握嵌入式编程
c语言·单片机·嵌入式硬件·学习·ai全流程闭环开发
likerhood9 小时前
Git 提交与推送常见报错处理笔记
笔记·git
菜鸡儿齐9 小时前
编程模型学习记录
学习
乔江seven9 小时前
【Python补漏】1 基础
学习
chen_2279 小时前
KZPROJ Git Diff AI 审查工具
git·ai·claude·kanzi
怪祝浙9 小时前
AI学习-LangChain实战-多模态识别agent
人工智能·学习·langchain
逆境不可逃9 小时前
Hello-Agents 第二部分-第六章:框架开发实践
java·人工智能·分布式·学习·架构·rabbitmq
YangYang9YangYan9 小时前
2026学习数据分析对产品经理的价值
学习·数据分析·产品经理