分享好友 最新动态首页 最新动态分类 切换频道
Git版本控制
2024-12-26 15:29

概念:一个免费开源,分布式的代码版本控制系统,帮助开发与团队维护代码

Git版本控制

作用记录代码内容切换代码版本,多人开发时高效合并代码内容

个人本机使用:Git基础命令和概念

多人共享使用:团队开发同一个项目的代码版本管理

总结

1、为何学习Git

        管理代码版本、记录、切换、合并代码

2、Git学习

        现在在本机自己使用

        在学习多人共享使用

3、如何安装使用

        程序双击安装

        在 VSCode 中使用 bash 终端以及 git 命令

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

创建

1、把本地文件夹转换成Git仓库:命令 git init

2、从其他服务器上克隆Git仓库

要打开git专用的终端 普通终端右边加号

  总结

1、什么是Git仓库

        记录文件状态内容和历史记录的地方(.git文件夹

2、如何创建Git仓库

        把本地文件夹转换成Git仓库:命令 git init
        从其他服务器上克隆 Git 仓库

Git使用时

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

暂存区:保存之前的准备区域(暂存改动过的文件

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

命令作用git add 文件名
(如果这个文件在某个文件下 要写相对路径)暂存指定文件git add.暂存所有改动的文件git commit -m “注释说明”提交并保存,产生版本快照

需求:把登录页面新增后,暂存并提交

总结

1、Git使用时有哪些区域

        工作区、暂存区、版本库

2、工作区的内容,最终要如何保存在版本库中

        git add 添加到暂存区

        等待时机后 git commit 提交保存到版本库,产生一次版本快照记录

Git文件 2 种状态

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

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

使用:修改文件,暂存,提交保存记录,如此反复

需求:新增 css文件,并使用 git status -s 查看文件状态,并最终提交 (在终端里看状态

文件状态概念场景未跟踪(U)从未被Gitt管理过新文件新添加(A)第一次被Git暂存之前版本记录无此文件未修改'')三个区域统一提交保存后已修改(M)工作区内容变化修改了内容产生

需求:新增css文件,并使用 git status -s 查看文件状态,并最终提交

第一列是暂存区状态

第二列是工作区状态

总结

1、Git文件状态分为哪2种

        未跟踪和已跟踪(新添加、未修改、已修改

2、如何查看暂存区和工作区文件状态
        git status -s

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

暂存区 —> 覆盖  —> 工作区,命令:git restore 目标文件

(注意:完全确认覆盖时使用(在VSCode没关闭前的 ctrl + Z是能撤销的 但是关闭后无法撤销

从暂存区移除文件,命令:git rm --cached 目标文件名 (移除后 工作区的文件名为未跟踪状态

需求:新增JS代码并暂存提交产生新的版本快照

步骤

1、新增js文件和内容

2、临时存的在暂存区

3、提交保存到版本库

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

查看提交历史git log --oneline

reset回退版本是从右向左一步一步进行辐射的

回退命令

git reset --soft 版本号(其他文件未跟踪

git reset --hard 版本号 (git reset 的恢复会先把对应这个版本的内容恢复到暂存区,然后接着会对比暂存区和工作区的内容然后进行恢复 如果没有恢复 可以再写个暂存 然后在hard退回

git reset --mixed 版本号 (与 git reset 等价

注意1:只有记录在版本库的提交记录才能恢复

注意2:回退后,继续修改 —> 暂存 —>提交操作即可(产生新的提交记录过程

总结

1、什么是Git回退版本

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

2、强制覆盖暂存区和工作区的命令?

        git reset --hard 版本号

3、如何查看提交历史
        git log --oneline

        git reflog --oneline

需求:删除 editor.js文件,并生产一次版本记录

步骤

1、手动删除工作区文件

2、暂存变更 / 手动删除暂存区文件造成变更

3、提交保存

总结:工作区只要改变,都可以暂存提交产生新记录

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

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

忽略命令

例如

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

2、编译产生的结果文件

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

4、涉密文件、密码、秘钥等文件

创建

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

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

注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可(git rm --catch

匹配成功后 工作区的文件名字会变灰

概念:本质上是指向提交节点的可变指针,默认名字是master,master默认指向最后一次对对提交记录

注意HEAD指针影响工作区/暂存区的代码状态(HEAD指针是实际上起作用的

场景:开发新需求/修复Bug,保证主线代码随时可用,多人协同开发提高效率

例如

在现有代码上创建新分支完成内容列表业务

突然需要紧急修复Bug - 单独创建分支解决Bug

需求:创建内容列表 content分支,并产生3次提交记录

步骤

1、创建分支命令git branch 分支名

2、切换分支命令git checkout 分支名

3、工作区准备代码并暂存提交,重复3次

总结

1、什么是Git分支

        指针,指向提交记录

2、HEAD指针的作用

        影响暂存区和工作区的代码

3、如何创建和切换指针

        git branch 分支名

        git checkout 分支名

需求:新建 login-bug 分支,做 2 次提交记录(对手机号长度,验证码长度做判断

步骤

1.切回到主分支:git checkout master

2.创建新分支:git branch login-bug

3.切换新分支:git checkout login-bug

4.修改代码,暂存,提交产生版本记录

需求:把log-bug 合并回到 master分支并删除log-bug分支

步骤

1、切回到要合入的分支上:git checkout master

2、合并其他分支过来: git merge log-bug

3、删除合并后的分支指针:git branch -d log-bug

注意:要先合并再删除不需要的分支

合并提交:发生于原分支产生了新的提交记录后,在合并回去时发生,自动使用多个快照记录合并后产生一次新的提交

步骤

1、切回到要合入的分支上:git checkout master

2、合并其他分支过来:git merge content

3、删除合并后的分支:git branch -d content

最后合并回到主分支上时,提交记录流程图

注意提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序

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

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

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

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

解决

1、打开VSCodde找到冲突文件并手动解决

2、解决后需要提交一次记录

避免(多交流

1、按页面划分不同分支开发

2、公共代码在统一文件夹维护

3、Node等版本软件统一,npm包统一下载

命令作用注意git -v查看git版本git init初始化git仓库git add 文件标识暂存某个文件文件标识以终端为起始的相对路径git add .暂存所有文件git commit -m “说明注释”提交产生版本记录每次提交,把暂存区内容快照一份git status查看文件状态-详细信息git status -s查看文件状态-简略信息第一列是暂存区状态,第二列是工作区状态git ls-files查看暂存区文件列表git restore 文件标识从暂存区恢复到工作区如果文件标识为.则恢复所以文件git rm --cached 文件标识从暂存区移除文件不让git跟踪文件变化git log查看提交记录-详细信息git log --oneline查看提交记录-粗略信息版本号 分支指针 提交时说明注释git reflog --oneline查看完整历史-简略消息包括提交、切换、回退等所有记录git reset 版本号切换版本代码到暂存区和工作区

--soft 模式保留暂存区和工作区原本内容

--hard 模式不保留暂存区和工作区原本内容

--mixed模式不保留暂存区,工作区保留(默认)先覆盖到暂存区,再用暂存区对比覆盖工作区

git branch 分支名创建分支git branch查看本地分支git branch -d 分支名删除分支请确保记录已经合并到别的分支下,在删除分支git checkout 分支名切换分支改变HEAD指针指向git chechout -b 分支名创建并立刻切换分支git merge 分支名把分支提交到历史记录并合并到当前所在分支

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

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

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

需求:创建远程版本库,并把本地Git仓库推送上去保存

步骤

1、注册第三方托管平台网站账号

2、新建仓库得到远程仓库Git地址(这个是在git上操作的

3、本地Git仓库添加远程仓库原点地址(可以理解为建立联系

        命令git remote add 远程仓库别名(叫撒都行) 远程仓库地址 

        例如:git remote add origin https://gitee.com/lidongxu/work.git

4、本地Git仓库推送版本记录到远程仓库

        命令git push -u 远程仓库别名 本地和远程分支名

        例如:git push -u oringin master

        完整写法:git push --set-upstream origin master:master

总结

1、远程版本库的作用

        保存提交历史记录,多人共享

2、远程版本库使用步骤

        创建远程版本库(自己服务器/第三方托管平台

        本地版本库设置远程地址

        推送本地版本库到远程

3、推送的命令

        git push -u origin master

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

命令:git clone 远程仓库地址 例如:git clone https://gitee.com/lidongxu/work.git

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

注意1:Git本地仓库已经建立好和远程仓库的链接

注意2:仓库公开随意克隆,推送需要身为仓库团队成员

克隆时,右键打开git Bah终端 在里面输入git命令

git clone 远程仓库网址

就会在你当前终端生成仓库名字文件夹(克隆成功

进入中国文件夹中:cd  文件夹名字/

隐藏的.git文件夹才是git仓库的一个准确位置

接着可以输入git log --oneline 查看所有提交历史记录

需求:小传新代码共享给小智

步骤

1、小传开发代码 —> 工作区  —> 暂存区  —> 提交  —> 拉取(可选)  —> 推送

2、小智  —> 拉取(后续也可以开发代码 —> …… —>  推送

3、想要看到别人同步上去的最新内容 git pull origin master 等价于 (git pull 远程仓库别名地址 拉取的是哪个分支下的最新提交记录

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

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

使用:源代码管理,进行暂存,撤销,对比差异,提交等操作

注意:VSCode打开的项目文件夹下需要有.git仓库

需求:把Webpack压缩好的dist分发文件夹网页,部署到码云上,开启Page服务在互联网中浏览

步骤

1、初始化本地Git仓库(这次是非空文件夹-配套素材dist文件夹

2、初始化远程Git仓库(这一次也是非空的

3、本地配置远程仓库连接

4、本地拉取合并一下(确认本地要包含远程内容时使用

5、本地推送到远程Git仓库

6、开启page网页服务得到地址浏览

详细步骤

①、先确认项目能够正常使用,打包代码后,对git终端进行一个初始化管理 git init 生成一个 .git文件夹。表明当前项目被git管理。

②、暂存 git add .

③、提交 git commit -m “注释说明” (本地准备完成

④、打开gitee网站,建立一个新的仓库(私有的,非空的

如果想清空(把现有的内容和所有提交记录都清空了

要拿到git地址是在这个地方 以.git结尾的

⑤、让远程git仓库与本地的git仓库建立联系

给本地配置 git remote add (前面是固定的)ori(仓库别名,自己随便起)https://gitee.com/zelina173/page-hm-data.git(这个是别名对应的远程git仓库地址

⑥、输入git push -u ori master(是远程仓库的分支名) master(自己仓库的分支名(一般这俩俩名重复写一个即可

 git push -u ori master

error报错 在hint提示里面说 在推上去(push)之前先拉取(pull)一次远程仓库

⑦、按照提示进行操作

git pull ori master

错误:拒接合并不相关的历史记录

本地里面是四个文件夹里面的文件 远程仓库里面是md文件,没有任何关系

所以要强制合并

⑧、git pull --rebase ori 远程仓库的别名 远程及本地分支的名字

        git pull --rebase ori master

此时工作区出现远程的文件

⑨、把本地仓库内容推到远程仓库里 git push ori master

⑩、到Gitee网站里刷新就能看到提交记录和本地仓库内容

命令作用注意git remote add 远程仓库别名 远程仓库地址添加远程仓库地址别名唯一,地址是.git结尾的网址git remove -v查看远程仓库地址git remote remove 远程仓库别名删除远程仓库地址git pull 远程仓库 别名 分支名拉取完整写法:git pull 远程仓库别名 远程分支名:本地分支名 等价于:git fetch 和 git mergegit push 远程仓库别名 分支名推送完整写法:git push 远程仓库别名 本地分支名:远程分支名 -u:建立通道后以后可以简写 git pushgit pull --rebase 远程仓库别名 分支名拉取合并合并没有关系的记录git clone 远程仓库地址克隆从0得到一个远程的Git仓库到本地使用
最新文章
AI辅助撰写全方位产品介绍文案攻略:解决用户搜索的所有相关问题
1. 欢迎体验【智能助手 Pro】,一款颠覆传统的智能设备助您轻松管理日常生活。2. 【核心功能】自动识别并分析客户需求,提供个性化服务,让生活更便捷。3. 【强大性能】采用,快速响应,精准实行,让操作更流畅。4. 【外观设计】简约时,轻
2024新奥资料免费公开,实地验证数据设计方案_交互版 18.414
2024年,新奥资料免费公开项目正式启动,旨在为全球科研工作者和数据爱好者提供一个开放、透明、可访问的资料共享平台。随着互联网技术的飞速发展,数据共享和信息交流变得越来越重要。新奥资料免费公开项目正是基于这一理念,通过提供高质
3. 清理浏览器缓存和cookies
现在很多设备和平台会出现“禁止观看视频”的设置,导致我们在观看视频时遇到无法播放的情况。这种情况通常发生在视频播放限制或者浏览器设置的过程中。若遇到这种情况,用户通常希望找到解除限制的方法。本文将详细介绍如何解除“禁止观看
CRM网页版是什么?
网页版是什么?CRM网页版是指基于网页浏览器的客户关系管理系统。它的核心特点包括:1、无需安装客户端软件,用户只需通过浏览器即可访问系统;2、跨平台兼容性强,支持不同操作系统和设备;3、实时数据更新和访问,方便团队协作和信息共享
AI头像制作新趋势:江苏技师学院夺冠选手也在用的个性化头像解决方案!
近期,江苏省淮海技师学院在全国人工智能应用技术技能大赛上斩获佳绩,尤其在人工智能视觉技术应用方面展现出色。这样的成就无疑让我们看到,将AI技术融合到日常生活中的重要性。在这个数字化时代,个性化的动漫头像成为了许多年轻人的选择
CA-410色彩分析仪——快速、高分辨率,支持HDR、广色域和OLED等新型显示测量的新一代色彩分析仪
OLED设备在亮度和色域上的不断提升,对于测量行业也提出了新的要求,CA-410是CA-310型号的升级,快速、高分辨率,支持HDR、广色域和OLED等新型显示测量的新一代色彩分析仪。 与CA-310 相比的性能提升: ① 在暗场下的测量精度对比,CA-410
2024年最新手机CPU性能排行榜:探索顶尖芯片天梯图
随着智能手机技术的迅速发展,CPU(中央处理器)的性能已成为衡量一款手机优劣的重要标准。2024年,市场上出现了许多具有革命性性能的新型手机CPU,这些顶尖的芯片不仅推动了手机性能的极限,也为用户带来了前所未有的体验。无论是高速的游
AI工具合集,让您事半功倍地解决难题!
在当今快节奏的社会中,人们常常面临各种各样的难题和挑战。然而,随着人工智能技术的不断发展,我们现在可以利用各种AI工具来帮助我们更高效地解决这些难题。下面是一些中国的AI工具合集,它们将为您提供有效的解决方案。无论是在国内还是
#今日论文推荐# 如何高效、精准地进行图片搜索?看看轻量化视觉预训练模型
#今日论文推荐# 如何高效、精准地进行图片搜索?看看轻量化视觉预训练模型 或是难以在海量化的图像中准确地找到所需图像,或是在基于文本的检索中得到差强人意的结果。对于这个难题,微软亚洲研究院和微软云计算与人工智
相关文章
推荐文章
发表评论
0评