分享好友 最新动态首页 最新动态分类 切换频道
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.将本地版本库提交到远程仓库


最新文章
盖世小鸡GameHub:手机变身PC游戏神器!
在数字娱乐飞速发展的今天,游戏行业逐渐突破了传统的设备限制,玩家的选择也愈加多样化。最近,国内知名模拟器品牌盖世小鸡宣布推出一款名为GameHub的PC模拟器应用,标志着手机游戏体验的一个重大突破。据悉,该应用预计将在2024年春节前
网络推广的方法有哪些?这几个方法效果好!
网络推广的方法有哪些?这几个方法效果好!网络推广的方法有哪些?这几个方法效果好!网络推广是当今企业竞争中的重要手段之一,它能帮助企业快速扩大知名度,提升品牌影响力。本文将介绍几种常见的网络推广方法,并分析这几个方法的效果。
微信小程序用户破9亿,月活超8亿领域曝光!
微信小程序用户规模持续扩大,活跃度显著提升。最新统计数据显示,直至今年十月,微信小程序的累计用户数已突破9.49亿大关。这一数字不仅彰显了微信小程序在用户群体中的广泛影响力,也反映出其日益增长的受欢迎程度。在用户行为方面,微信
绝了,2024 最新百度网盘/阿里云盘/夸克网盘/迅雷云盘网盘资源搜索神器,全网资源任你搜...
今天分享几个2024最新阿里云盘/百度网盘/夸克网盘/迅雷云盘资源搜索神器网站和app,全网资源任你搜,无需注册使用,关键还免费,网站和app地址在公众号后台对话框回复 网盘第1个混合盘,一个搜索网站规则引
正在阅读:翻新机旧芯换新壳 360优化大师一键验真翻新机旧芯换新壳 360优化大师一键验真
  随着双十一电商热潮的临近,各大电商渠道、3C卖场均掀起了一番智能机购机潮,面对此般热潮,一些占据价格优势的水货及翻新机产品也就此浑水摸鱼,对于一些不懂行的消费者而言,就很容易陷入商家的陷阱之中。  往往购机后被曝出各种质
高测股份
高测股份(688556)业绩预告公告日期2024-02-27报告期2023-12-31类型预增业绩预告摘要预计2023年1-12月归属于上市公司股东的净利润为:1461450211.57元,与上年同期相比变动幅度:85.32%。业绩预告内容预计2023年1-12月归属于上市公司股东的
word一键生成ppt 分页_如何将word快速生成PPT
许多人的制作方法或许都是这样的: 第一步:新建一个空白的PPT文件 第二步:把word文档中的内容一点一点的复制在PPT文件中 第三步:对PPT文件排版如果是你,你也会是这样操作的吗? 实际上,完
谷歌搜索引擎优化(SEO)入门指南
随着互联网的快速发展,搜索引擎优化(SEO)已成为众多企业和个人网站不可或缺的一部分。SEO能够帮助您的网站在搜索引擎结果页(SERP)中获得更高的排名,从而增加曝光率和流量,提高销售和品牌知名度。在本文中,我们将向您介绍SEO的基本
关键词排名优化哪家?选择合适的SEO公司助你赢得流量与市场
不同的行业、不同的企业在关键词优化方面的需求各不相同,因此,选择SEO公司时,是否能够提供定制化服务是一个重要的考量标准。优秀的SEO公司会根据企业的实际情况,分析其市场定位、目标客户群体、竞争对手以及产品特点,从而提出量身定制
美职篮巅峰对决:球员强度全面排行,揭秘最强球星TOP榜单推荐
本文目录导读:T0强度排行T1强度排行T2强度排行在美职篮(NBA)的巅峰对决中,球员的强度是决定比赛胜负的关键因素之一,以下是一份基于球员实力、表现以及影响力的全面排行,揭秘最强球星TOP榜单推荐:1、迈克尔·乔丹:作为篮球历史上的
相关文章
推荐文章
发表评论
0评