当前位置: 首页 > news >正文

Git学习

一、Git介绍

Git是目前世界上最先进的分布式版本控制系统

二、Git与Github

2.1 两者区别

Git是一个分布式版本控制系统,简单的来说就是一个软件,用于记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的软件。

Github(地址:https://www.github.com)是一个为用户提供Git服务的网站,简单的来说就是一个可以放代码的地方(不过可以放的当然不仅仅是代码)。Github除了提供管理Git的web界面外,还提供了订阅,关注,讨论组,在线编辑器等丰富的功能,Github被称之为全球最大的基友网站(全球最大同性交友网站)。

三、Git安装

下载地址:https://git-scm.com/downloads

注意:安装路径尽量不要使用中文和特殊字符

四、Git使用

4.1 工作流程

Git本地操作的三个区域:

工作区(working Directory): 添加、编辑、修改文件等动作

暂存区:暂存已经修改的文件最后统一提交到git仓库中

Git仓库(git Repository):最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见

4.2 本地仓库操作

仓库定义:仓库又名版本库,英文名repository,我们可以简单理解成是一个目录,用于存放代码的,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。

1、在安装好后首次使用需要先进行全局配置

2、创建仓库

创建文件命令行:mkdir xxx

进入目录文件命令行:cd xxx

3、Git常用指令操作

查看当前状态:git status【非必要】

添加到缓存区: git add 文件名

提交至版本库: git commit -m "注释内容"

4、版本回退

版本回退分为两个步骤进行操作

1、查看版本,确定需要回到的时刻点

命令行指令:

a,git log

b,git log --pretty=oneline

2、回退操作

命令行指令:git reset --hard 提交版本号

3、查看历史操作

命令行指令:git reflog

4.3、远程仓库

定义:直接在使用Git的web界面操作创建一个线上仓库(例如:Github、GitLab、码云等等)

1、两种常规使用方式

1.1 基于http协议

a,创建空目录

b,使用clone指令克隆线上仓库到本地

命令行指令: git clone 线上仓库地址

c,在仓库上做对应的操作(提交暂存区、提交本地仓库、提交线上仓库、拉取线上仓库)

提交到线上仓库的指令:git push

d,拉取线上仓库

命令行指令:git pull

1.2 基于ssh协议(推荐使用)

定义:该方式与https方式相比,只是影响GitHub对于用户的身份鉴权方式,对于git的具体操作(比如提交到本地、添加注释、提交远程等操作)没有任何影响

生成公私钥指令(需要先安装OpenSSH):ssh-keygen -t -rsa -C "注册邮箱"

步骤:

a,生成客户端公私钥文件

b,将公钥上传到GitHub(或其他使用GIt的网站)

4.4 Git分支操作

原因:在使用版本回退时,每次提交后都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴就是一个分支,我们称之为master分支。

在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。

分支相关指令

查看分支: git branch

创建分支: git branch 分支名

切换分支: git checkout 分支名

删除分支: git branch -d 分支名

合并分支: git merge 被合并的支名

对于新分支,可以使用'git checkout -b 分支名'指令来切换分支,-b选项表示创建并切换,

相当于是两个操作指令合并

4.5 冲突的产生与解决

原因:在提交当前代码到远程仓库时,未拉取线上最新的代码,就会出现冲突

提示我们要在再次push之前先git pull 操作

五、Git实用技能

5.1 图形管理工具

1、Github for Desktop

Github官方出品的软件,功能完善,使用方便。对于经常使用Github的开发人员来说是非常便捷的工具,界面干净,用起来非常顺手,顶部的分支时间线非常绚丽。

2、Sourtree

老牌的Git GUI管理工具,号称是最好用的Git GUI工具,功能丰富,基本操作和高级操作都非常流畅,适合初学者上手。

3、TortoiseGit

对于熟悉SVN的开发人员来说,这个小乌龟图标应该是非常友善的。TortoiseGit简称tgit,中文名海龟git。他与其前辈TortoiseSVN都是非常优秀的开源版本控制客户端软件。

5.2 忽略文件

场景:在项目目录下有很多万年不变的文件目录,例如css、js、images等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用忽略文件机制来实现。

定义:忽略文件需要新建一个名为.gitignore的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。

注意:该文件因为没有文件名,没办法直接在windows目录下直接创建,可以通过命令行Git Bash 来touch创建。

常见规则写法:

1、/mtk/ 过滤整个文件夹

2、*.zip 过滤所有的.zip文件

3、/mtk/doc 过滤某个具体文件

4、!index.php 不过滤具体某个文件

http://www.jsqmd.com/news/603864/

相关文章:

  • 【Agent】大模型在线API接入基础入门
  • 想把UC3842电源从12V1A升级到12V6A?这份保姆级物料清单与改造要点请收好
  • 新手友好:零基础使用快马AI生成专利数据链接展示页
  • 告别窗口限制:WindowResizer让Windows桌面管理效率提升300%
  • Windows Subsystem for Android (WSA) 技术指南:从问题诊断到场景落地的完整实践路径
  • 亲测高效降AI工具:高AI率论文1小时达标指南
  • 数字记忆守护者:GetQzonehistory实现QQ空间数据本地备份全攻略
  • WPF调试神器:如何在GUI应用中优雅地输出Console日志(附完整代码)
  • 前端CSS预处理器:别再写那些重复的CSS代码了
  • Windows系统指针美化全攻略:基于开源方案的跨平台实现
  • 三分钟搞定openclaw环境:用快马AI一键生成全平台安装脚本原型
  • Tesseract OCR 终极指南:5分钟掌握开源文字识别神器
  • SEO 优化者如何提高网站的转化率
  • 手把手教你用Burp Suite搞定PortSwigger Labs的CSRF靶场(附12个Lab实战POC)
  • Comsol弱形式求解三维光子晶体能带:快速而精确的模拟方法探索光子晶体的局域化光学行为
  • Visual C++运行库一站式解决方案:从依赖问题到高效部署
  • Spring Cloud OpenFeign实战:如何优雅地调用微服务接口(附完整代码示例)
  • 【C++27协程调试终极指南】:20年专家亲授5大不可外泄的断点追踪黑科技
  • Android WorkManager避坑指南:这样用才能真省电,而不是更耗电
  • simulink和carsim联合仿真的mpc轨迹跟踪模型。
  • 无需训练!实时手机检测-通用模型直接使用,效果媲美YOLO
  • WechatRealFriends:微信虚假好友检测工具,让社交关系更透明
  • 【Java基础面经】Java 注解的底层原理
  • 解密技术的范式革新:RPGMakerDecrypter如何重构游戏创作生态
  • Claude Code通关手册(一):转角遇到爱,真香体验
  • 小学数学
  • Vulfocus靶场实战:youdiancms 9.5.0 SQL注入漏洞(CVE-2022-32300)从审计到Getshell
  • 盘姬工具箱:免费无广告的良心工具箱推荐
  • PDF投喂翻车实录:手把手教你用AnythingLLM正确处理扫描版教材和文献
  • 【2024唯一通过FB内部CI验证的配置模板】:PyTorch 3.0 + TorchDynamo + DTensor静态图分布式训练100%复现方案