分享好友 最新动态首页 最新动态分类 切换频道
Git笔记
2024-12-26 23:54

目录

Git笔记

Git初识

1.为什么使用Git

2.Git是什么?有什么用

3.需要学习Git的什么

Git安装

1.下载

2.安装

3.检验安装

VSCode检验安装(老师推荐使用这个终端

Bash终端检验安装

控制台检验安装

4.Git配置用户名信息

5.教Git认识中文(黑马删视频了,唉

6.Git Bash设置右键菜单栏(否则不能粘贴

7.Git Bash文件目录切换

Git仓库

1.创建Git仓库

Git三个区域

1.将要更新的文件添加至暂存区

2.更改文件内容

3.保存

4.查看暂存区列表

5.确认产生一次版本记录,commit提交

6.查看效果

7.查看提交历史

8.查看提交列表

Git文件状态

1.查看文件状态命令

Git暂存区作用

1.暂存区恢复文件

2.移除暂存区文件

Git忽略文件

Git提交所有文件

Git换行符问题

Git还原版本 (难点)

1.soft模式

2.mixed模式(默认模式

3.hard模式

Git删除文件

1.Git删除缓存区命令

Git分支(重点

1.什么是分支

 2.分支的使用场景

3.初步使用

4.查看分支列表

5.创建新分支(功能分支

6.切换分支

7.创建并切换分支

8.合并分支

双人协同开发

三人协同开发

9.合并冲突

制作一个合并冲突

解决方案

10.删除分支

11.将本地分支push到远程仓库(暂时还没学远程仓库,先记着

12.查看远程仓库中所有的分支列表

13.跟踪分支

14.拉取远程分支的最新版代码

15.删除远程分支

16.总结

Git远程仓库

1.本地Git仓库添加远程仓库

2.查看本地Git仓库有哪些远程仓库地址

3.移除添加过的远程仓库地址

4.gitee许可证我选择哪个

5.开源自己的仓库

6.如果Gitee网站换号了,如何继续使用原来的仓库

7.远程仓库-克隆(重点

前提

8.模拟多人协作开发(重点

创建两个空文件夹

分别克隆Gitee上的项目

02开发一个模块后保存提交推送

之后01开发另一个模块,拉取达到同步的目的

Git命令合集


1.为什么使用Git

之前做开发的时候,如果需要更新代码的内容,上线新的版本,需要手动复制,就是这样

既麻烦又不清楚每一次更新了什么内容


2.Git是什么?有什么用

  • Git是一款软件,一款免费开源,分布式的代码版本控制系统,帮助开发团队维护代码
  • 作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容

3.需要学习Git的什么

  • 如果是个人开发使用:Git基础命令和概念
  • 如果是多人共享使用:团队开发同一个项目的代码版本管理

1.下载

本章节使用的版本是 v2.44.0 -64bit.exe

官网:Git - Downloading Package (git-scm.com)

2.安装

无脑安装就行,全部默认下一步,有好多选项乱七八糟的英文看不懂就不看了

安装结束后,多了一个控制台,应该是bash终端(git专用

3.检验安装

VSCode检验安装(老师推荐使用这个终端

安装成功后,重启VSCode发现多了一个控制台选项Git Bash

Bash终端检验安装
控制台检验安装

4.Git配置用户名信息

配置:用户名和邮箱,应用在每次提交代码版本时表明自己身份

 
 

5.教Git认识中文(黑马删视频了,唉

参考教程:GIT使用log命令显示中文乱码 - 颜子歌 - 博客园 (cnblogs.com)

不配置这一步的话,Git不认识中文就乱码

解决方案

  • 首先,让Git学会怎么解码中文
 
 
  • 然后,让系统知道怎么解码中文
 
 
  • 再教Git Bash解码中文

 然后就没问题啦


6.Git Bash设置右键菜单栏(否则不能粘贴

ctrl/shift + insert 复制/粘贴

7.Git Bash文件目录切换

 
 

8.检验配置

git config -l

9.账号密码持久化

输入这行后,以后还会再输入一次

 


Git 仓库(repository:记录文件状态内容的地方,存储着修改的历史记录

就是一个隐藏的.git文件夹

1.创建Git仓库

有两种方式

  • 将本机的一个文件夹转换为Git仓库:命令 git init
  • 从其他服务器上克隆Git仓库

暂时先使用第一种:在本地创建Git仓库

 
 
 

工作区:实际开发时操作的文件夹

暂存区:保存之前的准备区域(暂存改动过的文件,在 .git/index中

版本库:提交并保存暂存区中的内容,产生一个版本快照,在 .git/objects中

命令作用git add 文件名(相对路径)暂存指定文件git add .暂存所有改动的文件git commit -m "注释说明"提交并保存,产生版本快照

1.将要更新的文件添加至暂存区

版本库 .git/objects中产生一个 40为hash值命名的文件

我并没有提交只是做一次保存,也产生了版本快照?怎么跟老师说的有点不一样呢

2.更改文件内容

3.保存

  • 可以只保存一个改动过的文件 git add 文件名
  • 也可以保存目录中所有改动过的文件 git add .
 
 
 

4.查看暂存区列表

 
 

5.确认产生一次版本记录,commit提交

6.查看效果

版本库里多了一堆版本快照

还多了一个文件记录每次更改的内容

双击打开文件

还多了HEAD日志

7.查看提交历史

 
 

8.查看提交列表

 
 

Git 文件 2 种状态

未跟踪:新文件,从未被 Git 管理过

已跟踪:Git 已经知道和管理的文件

第一列是暂存区状态

案例阐述:新建一个CSS文件(U),修改后 git add保存到暂存区,此时这个文件从U变成A,因为是第一次被暂存,还未提交过,没有产生版本记录,那么此时误删CSS文件,不好意思,无法恢复。

没有被git add过的文件会一直显示U,文件只有在第一次git add过的时候才会显示A,再存就不显示了

1.查看文件状态命令

创建一个css文件,git add保存到暂存区后,启动命令

 
 
 

修改css文件

暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦

如果没有暂存区就会多次commit提交,正常情况下,我们只会多次修改,到最终才会提交一次,这就是暂存区的作用

1.暂存区恢复文件

将文件git add到暂存区后,再次更改工作区文件,改了半天突然不想改了,怎么办呢

通过这行命令将暂存区的旧文件覆盖工作区刚改的新文件。

 

2.移除暂存区文件

之前git add存的文件不想要了怎么办

 

概念:.gitignore 文件可以让 git 彻底忽略跟踪指定文件

目的:让 git 仓库更小更快,避免重复无意义的文件管理

例如

1.系统或软件自动生成的文件

2.编译产生的结果文件

3.运行时生成的日志文件,缓存文件,临时文件等

4.涉密文件,密码,秘钥等文件

创建

1.项目根目录新建 .gitignore 文件

2.填入相应配置来忽略指定文件

注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即,所以尽量.gitignore文件在项目刚开始就写好

.gitignore

 

也不是所有文件啦,就是给一整个前端项目提交上去,除了.gitignore文件里忽略的

参考我的这篇博客:Git win与linux换行符转换的问题-CSDN博客


黑马老师讲的不清楚,也可能是我脑子有问题,最后找到了一个视频,通俗易懂的:Git reset三种常用模式区别和用法_哔哩哔哩_bilibili

概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区

还原命令有三个

  • git reset --soft
  • git reset --mixed
  • git reset --hard

后面的参数可以是版本号推荐,还有其他等等,反正我也不用

  • git reset HEAD~<n>

git reset的三个模式,都能达到这种目的,不过不同的模式对于工作区和暂存区的影响是不同的

假如只提交一个文件 README.md,修改了两次,保存了三次,提交了三次

1.soft模式

只会覆盖HEAD的文件集合只会将版本库(HEAD)里的 被reset的文件的版本回退到了v2版本,工作区和缓存区的版本依旧是最新版

如果想回到reset之前的状态,也就是全部最新版,只需要再次执行commit,将HEADv2升级到v3

2.mixed模式(默认模式

保留了工作区的文件版本不回退了,但是将缓存区和版本库里的文件版本回退了

如果想回到reset之前的状态,也就是全部最新版,需要先git add将缓存区v2 升级到 v3,再commit将HEADv2升级到v3

3.hard模式

工作区、缓存区和HEAD全部还原旧版本,就是说,重新开发,之前的不要了


不想让自己的项目中出现某个文件了,怎么办呢

需要保证工作区、缓存区和HEAD中都不在出现这个文件

  1. 第一步,先手动删除工作区的文件
  2. 第二步,有两种办法,第一种,直接git add .覆盖缓存区;也可以手动删除缓存区的文件【git rm -cached 文件名】
  3. 第三步,此时工作区和缓存区都没有那个文件了,直接commit

1.Git删除缓存区命令

 

1.什么是分支

        什么是分支呢?在电影中常常有平行宇宙这个概念,而分支就像是平行宇宙不同的分支互不影响。

        分支常用于多人协作开发时,每个开发人员在自己的分支上实现相应功能,当功能实现后,再将分支内容合并到主分支上,这样大大提高了开发效率。

在初始化本地Git仓库时,Git已经默认帮我们创建了一个名字叫master/main分支,通常我们把这个master分支叫做主分支

开发的时候,可能不止master/main一个指针,还可能有public、content什么的


 2.分支的使用场景

1.开发新需求:我正在开发登录页面,开发完成后,公司招了一个新前端,要他继续开发新功能,我不想让他影响我已经开发好的部分,就会创建一个新分支给他,他将在我开发好的那一版本C5接着开发,等他开发完成,就合并

2.修补bug,同上,最终合并

3.初步使用

  • 假设已经开发了一部分了,并add到缓存区,commit到HEAD了
  • 创建并切换到content分支
  • 开发新功能,开发哈哈哈页面
  • 添加到缓存区
  • commit到HEAD
  • 再开发一个css样式表,同样的操作
  • 切换master分支,回到最初的样子(重点

说明,分支可以保证多人协同开发互不影响


4.查看分支列表

 
 

5.创建新分支(功能分支

 专门用来开发新功能的分支,临时从master主分支上分叉出来的。当分支被合并时,功能分支就不在有意义了。所以功能分支的生命周期短

 
 

6.切换分支

当我们需要写编写功能代码时,我们就需要切换到该分支上书写,如果直接在主分支上写会不利于代码的维护

 
 

7.创建并切换分支

 
 

8.合并分支

在功能分支上书写完全部代码后,我们需要将功能分支上的内容合并到主分支上,让主分支拥有该功能。注意:在合并分支时,我们不能处于需要合并的分支上。例如想要将C分支合并到A分支上,必须先切换到A分支上,再合并C分支。

而且,合并的分支并不会被删除,只是将功能合并

 
 
双人协同开发
三人协同开发

教程(这个黑马老师讲的比较清楚:Git-13.分支-合并与提交_哔哩哔哩_bilibili


9.合并冲突

需求1:基于 master 新建 content分支,完成发布文章业务,然后修改内容页面的 html 文件的 title 标签,并提交一次

需求2:切换到 master,也在修改内容页面的 html 文件的 title 标签,并提交一次

冲突:把 content分支合并到 master 回来,产生合并冲突

概念:不同分支中,对同一个文件的同一部分修改,Git 无法干净的合并,产生合并冲突

制作一个合并冲突
解决方案

1.跟小组成员讨论一下,到底要哪个,还是都保留,然后用VSCode提供的工具处理

2.保存提交,合并成功删除content


10.删除分支

当功能分支被合并后,该分支就没有意义了,此时需要删除分支。删除时也不能处于即将被删除的分支上例如想要将C分支删除,当前不能处于C分支上。

 
 
 

11.将本地分支push到远程仓库(暂时还没学远程仓库,先记着

第一次将本地分支推送到远程仓库

 

12.查看远程仓库中所有的分支列表

 

13.跟踪分支

 

14.拉取远程分支的最新版代码

 

15.删除远程分支

 

16.总结

        其实在真正进行项目开发时,我们并不会只开一个核心分支,一般是master分支和develop两个核心分支,在必要时还会开启relase分支进行bug测试。在实际开发中按需要创建、合并分支。

        另外在团队协作开发时,我们每天都需要将本地git仓库上传到远程仓库。


通俗来说,就是将本地仓库复制一份到网络服务器上

概念:托管在因特网或其他网络中的你的项目的版本库

作用:保存版本库的历史记录多人协作

创建:公司自己服务器 / 第三方托管平台(Gitee,GitLab,GitHub...

1.本地Git仓库添加远程仓库

本章节使用Gitee码云来管理仓库

 工作台 - Gitee.com

 

第一次使用会弹出登录框,填写gitee账号密码,给邮箱私有化关掉,否则不等登录

建立成功


2.查看本地Git仓库有哪些远程仓库地址

 
 

3.移除添加过的远程仓库地址

 

4.gitee许可证我选择哪个

5.开源自己的仓库

开发完后,可以开源什么的

6.如果Gitee网站换号了,如何继续使用原来的仓库

win10搜索,凭据管理器(我也没经历过,先记下来

给这个删了,再访问远程仓库就可以重新输入新的账号密码了

7.远程仓库-克隆(重点

克隆:拷贝一个Git仓库到本地,进行使用

 

效果:在运行命令所在文件夹,生成work项目文件夹(包含版本库,并映射到暂存区和工作区

前提
  • Git本地仓库与远程仓库建立连接
  • 仓库公开随意克隆,推送(push)需要身为仓库团队成员
  • 新建一个空白文件夹
  • 打开Gitee随便找一个项目复制.git地址
  • 在空白文件夹右键打开Git Bash,输入git clone
  • 项目下载下来了,进入有.git的目录查看日志
  • 用VSCode打开项目

8.模拟多人协作开发(重点

1.02开发代码 -> 工作区 -> 暂存区 -> 提交 -> 拉取(可选)-> 推送

2.01 -> 拉取(后续也可以开发代码 -> ... -> 推送

3.想要看到别人同步上去的最新内容:git pull origin master 等价于

git fetch origin master:master(获取远程分支记录到本地,未合并

git merge origin/master (把远程分支记录合并到所在分支下

推送与拉取

 
创建两个空文件夹

分别克隆Gitee上的项目

02开发一个模块后保存提交推送

02开发 -> 工作区更新 ->暂存区同步更新 ->本地版本库同步更新 ->远程版本库同步更新

之后01开发另一个模块,拉取达到同步的目的

第二天01接着开发,要先拉取

此时01的代码也会同步更改

9.Git标签

10.IDEA中集成Git

确保本地安装了Git,再进行配置

解除Git对项目的管理
  1. 手动删除.git
  2. IDEA设置
将锐鸡歪麦交给新远程仓库管理
  1. 由于 本地仓库与远程仓库没有共同的提交历史,而远程仓库已经存在文件(readme.md,为了防止这两个仓库的历史不会交叉,需要先拉取,加上参数:--allow-unrelated-histories
  2. 当你从一个完全独立的 Git 仓库(如新创建的远程仓库)拉取内容时,通常会导致 Git 报错,提示无法合并,因为没有共同的父提交。加上 参数可以绕过这个限制,使得 Git 允许合并这些不相关的历史记录

1.创建一个远程仓库

2.给本地项目初始化一个本地仓库

3.将本地仓库添加到远程仓库

 

4.检查是否添加成功

 

5.确认win凭证

6.将项目添加本地仓库的暂存区

 

7.检查是否添加成功

 

8.将本地暂存区提交到本地版本库

 

9.检查是否提交成功

 

10.无障碍拉取远程仓库

 

11.将本地版本库提交到远程仓库


最新文章
深入解析SEO外链建设,让SEO站长发外链不再迷茫
对于那些做SEO的人来说,外部链的构建是他们工作中不可或缺的一部分。为什么每个人都愿意做外链?原因还在于深层次的pagerank算法。搜索引擎技术不断进步,搜索引擎算法也日趋多样化。搜索引擎的目的是提供更好的搜索结果。关于SEO外部链的
最新部落冲突360版,游戏变革与深度体验分享
摘要:最新版本的360版部落冲突游戏带来了诸多变革与全新体验。游戏更新优化了界面设计,增加了新的战斗策略和英雄角色,提升了游戏的互动性和竞技性。玩家可以组建或加入部落,与全球玩家一同合作,共同争夺资源和领地。新版本还加强了社
超级文本处理工具 v3.3
超级文本处理工具 v3.3 骨瘦如柴百鸟画蛇添足鸣春10. 生活中能够没有诗歌,但不能没有诗意;行进中能够没有道路,但不能没有前进的脚步;工作中能够没有经验,但不能没有学习,人生中能够没有闪光,但不能有污迹。写作高手使用的高难度表达:
抖音豆包爆火!龙头10天6板 受益上市公司梳理
  豆包大模型概念股领涨AI赛道,公司移动应用分发平台服务了豆包在内的众多头部AI类产品的周五收盘10天6板,居然设计家业务正在与豆包进行对接的6天5板,与字节跳动旗下的豆包就智能设备领域进行初步洽谈的盘中一度20CM涨停。  消息面
贵宾犬能吃香蕉吗 饮食禁忌有哪些
贵宾犬是能吃香蕉的,但如果是没有打疫苗的幼犬,建议不要给它喂食香蕉,否则容易引起狗狗腹泻。此外,也不可给狗狗食用太多,过多会导致肠道菌群失衡。贵宾犬是可以吃香蕉的,在狗狗便秘或食欲不好的时候给于适当的香蕉可以起到调节作用,
高清美女写真生成:以AI为助手,轻松实现你的梦幻场景!
DALL-E 2DALL-E 2是OpenAI推出的一款先进工具,凭借其强大的生成能力,用户只需简单输入文本描述,工具便可以生成高质量、符合描述的图像。DALL-E 2不仅能制作超逼真的美女照片,还能够根据用户需求加入背景、道具和风格等。虽然它拥有惊人
设计师必用的五个AI绘图神器?第一个太重磅!
前言       以往绘制设计图时,需要从零开始构思、草拟、搜集素材、精细调整每个元素,这一连串步骤既耗时又费力,往往需要数小时乃至数日的不懈努力。      而今,借助AI绘图工具,这一切变得截然不
退本《DeePLAPP》遭遇任务骗局,提现无门怎么办?
DeePLAPP遭遇任务骗局,提现无门怎么办?技术出嘿『溦:9836356』(一)希望阅读此文的读者能够及时采取措施以减少损失;请及时与团队联系提供解决方案(文章下面图片有咨询方式)若想追回损失资产,务必仔细阅读以下内容。【JFHHERYERY】2024年
用AI绘画工具一键生成超逼真美女写真,快来试试!
步骤二:选择模式在主界面中选择“美女写真生成”模式,准备开始你的创作之旅。步骤三:输入描述在输入框中输入您想要的主题与细节,比如“优雅的中国风美女”。步骤四:生成图像点击“生成”按钮,等待几秒钟,系统将自动为您生成相应的美
靠产品力说话,坦克300发动机表现如何
在汽车市场日益激烈的竞争中,消费者对汽车的需求逐渐转向越野性能的提升,尤其是年轻一代,他们追求个性化和与众不同的座驾。在这样的背景下,国产汽车品牌纷纷推出满足市场需求的硬派越野SUV,其中坦克300凭借其卓越的产品力脱颖而出。今
相关文章
推荐文章
发表评论
0评