Github客户端工具github-desktop使用教程

文章目录

  • 1.客户端工具的介绍
  • 2.客户端工具使用感受
  • 3.仓库的创建
  • 4.初步尝试
  • 5.本地文件和仓库路径
    • 5.1原理说明
    • 5.2修改文件
    • 5.3版本号的说明
    • 5.4结合码云解释
    • 5.5版本号的查找
  • 6.分支管理
    • 6.1分支的引入
    • 6.2分支合并
    • 6.3创建测试仓库
    • 6.4创建测试分支
    • 6.5合并分支
    • 6.6合并效果查看
    • 6.7分支冲突演示
    • 6.8合并分支的标签
  • 7.提交代码

1.客户端工具的介绍

下面的这个就是我们的这个客户端工具的下载:githubdesktop客户端

[客户端工具下载](Download GitHub Desktop | GitHub Desktop)

2.客户端工具使用感受

这个客户端工具可以让我们更加深刻的理解这个分支管理,版本控制,尤其这个分支管理,真的很神奇,不同的分支在我们的这个文件夹里面显示的这个内容是不一样的,即使两个分支在一个仓库下面;

此时无声胜有声,一切尽在不言中,学习使用这个客户端工具,一定会让你更上一层楼

我学习的是这个教程:真的讲得很好,强烈推荐去听听,老师还画图帮助我们理解,真的很到位:

[尚硅谷git教程](08 - Git - 客户端 - GitHubDesktop - 仓库操作_哔哩哔哩_bilibili)

3.仓库的创建

下面的这个就是我们想要使用这个客户端工具,首先需要创建一个仓库,在这个仓库上面进行操作(比如说创建文件,填写内容,进行这个提交之类的,因此这个首先需要一个仓库);

image-20241116104309309

4.初步尝试

再说我们上面的把这个仓库创建好的这个基础之上,我们可以进一步的进行操作:就是创建新的文件在这个仓库里面

1)我们点击这个页面的这个左下角的这个show in explorer这个按钮

image-20241115175433124

2)上面的这个点击之后,相当于就是会跳转到我们的这个吸纳创建的这个仓库所在的这个目录下面;

3)这个时候,我们就在这个跳转到的这个目录下面去新建一个新的,文件,我自己是使用的这个txt文件演示的,然后这个时候我们返回到我们的这个客户端工具的时候,会看到下面的这个变化;

左边的这个显示的test.txt就是我新建的这个文件,右边的这个显示的就是我在这个文件里面插入的这个具体的内容;

image-20241116080541506

5.本地文件和仓库路径

5.1原理说明

上面的这个情况,为什么我们修改之后这个客户端工具可以自动进行识别,因为我们的这个文件是新建到了我们的这个仓库所在的这个路径下面的;

但是这个时候我们新建的这个文件并不是在我们的这个仓库里面,因为我们的这个新建的文件是在这个.git同级目录下面的,但是我们的这个仓库文件是在这个.git里面的;

这个可以进行识别是因为我们的这个过程中有一个比对的文件,就是比较我们的仓库和这个git仓库里面的这个内容是不是一样的,如果不一样,就会显示这个***changed这样的提示,如果是一样的,这个比对就会看出来这个是一样的;

image-20241116081346958

当我们创建一个新的文件之后,这个时候我们的这个.git里面肯定是没有的,因此这个时候我们需要使用这个commit进行提交到我们的这个.git里面去,这个说法可能不是很正确,但是我们一旦进行这个commit之后,这个时候我们的这个本地创建的这个文件在这个.git里面就有了一份,因此这个时候再次进行比对的时候就不会有差别了;

image-20241116082034651

5.2修改文件

当我们修改文件,可以在这个已有的这个文件里面去添加内容,也可以创建一个新的文件,这个时候,就相当于是我们搞了一个新的文件,但是这个.git里面保存的还是我们上一次提交的这个文件,这个时候比对的时候会发现这个改变,因此我们需要再次进行提交;

这次提交的相当于是新文件,因为这个git是一个版本的控制系统,我们两次提交的这个内容是不一样的,即使我们是在一个一个文件里面进行修改,可能是这个内部使用某些操作合并了,所以我么看到的这个最后总效果是不同的颜色,表示的我们对于这个文件的修改的过程(码云上市这个样子的);

image-20241116081315211

5.3版本号的说明

上面说,我们修改之后,这个提交的是一个新的文件,这个可不可以观察到了,或者说是证明一下,其实这个文件的版本号就可以去说明这个问题;

打开我们的这个历史的提交记录,这个时候我们页面的这个上发的这个7位数的这个内容就是我们的版本号,我们每一次提交之后的这个显示的版本号都是不一样的;

image-20241116082636521

5.4结合码云解释

对于版本号这一点,我自己也是深有体会,因为之前使用这个码云的时候,这个每一次进行提交的时候上面会显示出来一串数字,之前不知道这个是什么,现在终于明白了;

这个就是用来表明我们每一次提交的这个文件的身份标识,类似于我们每一个人的身份证号;

image-20241116082246527

5.5版本号的查找

就是在我们的这个文件夹.git里面的这个object目录下面有这个我们提交的这个版本号的相关记录,我们是可以在这个里面找到的;

image-20241116083004921

6.分支管理

6.1分支的引入

就是我们的不同的开发人员进行这个开发的时候多次提交,导致这个版本很混乱,如果是相同的文件,我们都去使用可能就会造成这个文件之间的冲突,因此我们有了这个分支的概念的引入;

image-20241116093556445

6.2分支合并

我们的这个修改就是在各自的这个版本上面进行的,这样最后的时候我们在进行合并,这样我们就只需要在追后进行处理(因为这个时候依然可能会出现这个冲突的情况,但是我们只需要最后处理一次);

image-20241116093833225

6.3创建测试仓库

image-20241116094111730

下面的这个代表的就是我们的这个main主分支,这个就是我们的这个版本仓库里面初始化的时候就会有这个分支

image-20241116094159293

6.4创建测试分支

创建新的分支:order表示对于这个订单的管理;

image-20241116094301525

我们可以创建这个user分支表示我们的这个用户信息的管理分支,我们在这两个分支上面进行演示,这个新建分支和我们的这个主分支之间的这个管理;

下面的这个前面打对钩的这个分支表示的就是我们当前所在这个分支:

image-20241116094357704

接下来就是就是进行这个测试的过程,这个绝对是大开眼界的过程:

1)现在是在这个user分支下面,我们在这个下面所以到这个目录下面去,添加这个user.txt文件,写一点内容,进行commit操作;

2)切换到这个order目录下面去,创建这个order.txt文件,这个时候我们的这个打开的目录和之前的这个user分支居然不一样,这个确实绝了(仔细研究发现我们在那个分支下面,这个文件夹显示的就是这个分支里面的这个内容,真的很神奇,我之前都不知道这个咩回事)0522CFDB

image-20241116094705020

6.5合并分支

因为我们的这两个新建的分支需要合并到这个main分支下面,因此我们需要先切换到这个main分支,然后再次进行这个分支选择具体要合并哪一个;

image-20241116095637821

我们按照下面的这个流程,依次对于两个分支进行合并;

image-20241116095737970

当我们的这个合并完成的时候,我们再次选择的时候,就会提示这个分支内容是最新的,up to date,但是没有合并之前就是this is a commit 就是说这个有一个分支可以被合并;

image-20241116095842995

6.6合并效果查看

image-20241116100035038

6.7分支冲突演示

image-20241116100513359

下面的这个就是对于这个冲突进行提示,提示我们进行修改:我们这个时候在这个默认的文本编辑器打开

image-20241116100613478

这个意思就是我们的这个main分支里面的这个(head指针指向的就是主分支)和我们的这个user分支里面的这个内容是冲突的,这个时候需要我们进行修改;

image-20241116100738610

我们可以全部保留,删除没用的部分:

image-20241116100904466

保存之后,这个就会显示冲突已解决,这个时候我们就可以进行正常的合并:

image-20241116100927113

6.8合并分支的标签

我们进行这个提交的时候可以写点日志,但是这个合并没有日志,我们可以添加这个标签对于这个的这次合并进行说明,了解一下即可;

image-20241116101110118

7.提交代码

首先关联我们的这个账号,下面的这个就是关联成功;

image-20241116103239307

然后我们把这个远程的这个空仓库克隆下来,因为昨天的哪个是有内容的,所以无法克隆,我自己新建了一个仓库,往这个仓库里写内容,commit之后,直接点击这个页面上的这个push origin按钮可以直接提交,非常方便!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/475159.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新智能AI问答运营系统(SparkAi)一站式AIGC系统,GPT-4.0/GPT-4o多模态模型+联网搜索提问+AI绘画+管理后台,用户会员套餐

目录 一、文章前言 系统介绍文档 二、功能模块介绍 系统快速体验 三、系统功能模块 3.1 AI全模型支持/插件系统 AI大模型 多模态模型文档分析 多模态识图理解能力 联网搜索回复 3.2 AI智能体应用 3.2.1 AI智能体/GPTs商店 3.2.2 AI智能体/GPTs工作台 3.2.3 自定义…

初识Linux · 线程概念

目录 前言: 线程的背景 线程的概念和Linux中的线程实现 线程杂谈 前言: Linux的学习从开始到现在,我们已经经历了许多大boss,从一开始的熟悉指令,到第一次在gcc环境下编译C语言的代码,到理解文件系统&…

ROS VRRP软路由双线组网方式

虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP),MikroTik RouteROS VRRP 协议遵循 RFC 2338。 VRRP 协议是保证访问一些资源不会中断,即通过多台路由器组成一个网关集合,如果其中一台路由器出现故障,会自动启用另外…

用 Python 与 Turtle 创作属于你的“冰墩墩”!

用 Python 与 Turtle 创作属于你的“冰墩墩”! 🦀 前言 🦀🐋 效果图 🐋🐉 代码 🐉 🦀 前言 🦀 冰墩墩是2022年北京冬季奥林匹克运动会的官方吉祥物。以熊猫为原型&#x…

React 中使用 Axios 进行 HTTP 请求

下面是一个案例,展示如何在 React 中使用 Axios 进行 HTTP 请求,包括 GET 和 POST 请求的使用。 1. 安装 Axios 确保项目中已安装 Axios,可以通过以下命令安装: npm install axios2. 创建一个简单的 React 应用 项目结构&…

【GoogleChrome】在开发者工具中修改js、css并生效

以下网站有个登录验证cookie的js 按f12打开开发者工具,看到验证规则很简单 添加替换js的本地文件夹 允许权限 删除js并按ctrls保存,然后刷新页面,新js生效

CentOS操作系统下安装Nacos

CentOS下安装Nacos 前言 这在Centos下安装配置Nacos 下载Linux版Nacos 首先到Nacos的 Github页面,找到所需要安装的版本 也可以右键复制到链接,然后通过wget命令进行下载 wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-ser…

数据结构--跳表

跳表 原理实现 原理 跳表(skiplist)是一种链表,而链表查询的时间复杂度为O(n),为了优化查询效率,我们可以让每相邻两个节点升高一层,增加一个指针,让指针指向下下个节点: 这样所有…

【学术论文投稿】JavaScript 前端开发:从入门到精通的奇幻之旅

【中文核刊&普刊投稿通道】2024年体育科技与运动表现分析国际学术会议(ICSTPA 2024)_艾思科蓝_学术一站式服务平台 更多学术会议论文投稿请看:https://ais.cn/u/nuyAF3 目录 一、引言 二、JavaScript 基础 (一)变量与数据类型 &am…

云计算实训室建设的必要性

一、云计算发展的背景 云计算作为一种新型的信息技术服务模式,通过互联网提供动态易扩展且通常是虚拟化的资源,涵盖了从基础设施服务(IaaS)、平台服务(PaaS)到软件服务(SaaS)等多个…

鼠标绘制轮廓

需要对label进行提升&#xff0c;新建MyLabel类&#xff0c;并将其提升到label控件上&#xff0c;详见上篇控件提升 mylabelmouse.h #pragma once #include <QtWidgets/QMainWindow> #include "ui_mylabelmouse.h" #include <QMenu> #include "My…

LLM( Large Language Models)典型应用介绍 1 -ChatGPT Large language models

ChatGPT 是基于大型语言模型&#xff08;LLM&#xff09;的人工智能应用。 GPT 全称是Generative Pre-trained Transformer。-- 生成式预训练变换模型&#xff1a; Generative&#xff08;生成式&#xff09;&#xff1a;可以根据输入生成新的文本内容&#xff0c;例如回答问题…

STM322完全学习——FSMC控制LCD显示屏

一、GPIO初始化 首先这个功能只有大容量的STM32系列有&#xff0c;C8T6是没有的。再就是FSMC这个使用的是GPIO的复用功能&#xff0c;下面先完成我们需要使用的GPIO的初始化 void TFTLCD_GPIO_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_…

MongoDB数据备份与恢复(内含工具下载、数据处理以及常见问题解决方法)

一、工具准备 对MongoDB进行导入导出、备份恢复等操作时需要用到命令工具&#xff0c;我们要先检查一下MongoDB安装目录下是否有这些工具&#xff0c;正常情况下是没有的:)&#xff0c;因为新版本的MongoDB安装时不包含这些工具&#xff0c;需要我们手动下载安装。下载成功之后…

【C语言】volatile 防止编译的时候被优化

volatile 易变的 volatile是 C 和 C 中的一个类型修饰符&#xff0c;用于指示编译器该变量可能在程序之外被更改&#xff0c;因此不应对其进行优化。这在涉及硬件寄存器、信号处理或多线程编程时非常有用。 如果你做过单片机开发&#xff0c;你肯定写过这样的代码&#xff1a;…

el-table实现最后一行合计功能并合并指定单元格

效果图如下&#xff1a; 表格代码如下&#xff1a; <el-table width"100%"ref"tableRef" style"margin-bottom: 15px;":data"jlData"class"tableHeader6"header-row-class-name"headerStyleTr6":row-class-n…

【JavaSE】【网络编程】UDP数据报套接字编程

目录 一、网络编程简介二、Socket套接字三、TCP/UDP简介3.1 有连接 vs 无连接3.2 可靠传输 vs 不可靠传输3.3 面向字节流 vs 面向数据报3.4 双向工 vs 单行工 四、UDP数据报套接字编程4.1 API介绍4.1.1 DatagramSocket类4.1.1.1 构造方法4.1.1.2 主要方法 4.1.2 DatagramPocket…

web——sqliabs靶场——第十二关——(基于错误的双引号 POST 型字符型变形的注入)

判断注入类型 a OR 1 1# 发现没有报错 &#xff0c;说明单引号不是闭合类型 测试别的注入条件 a) OR 1 1# a)) OR 1 1# a" OR 11 发现可以用双引号闭合 发现是")闭合 之后的流程还是与11关一样 爆破显示位 先抓包 是post传参&#xff0c;用hackbar来传参 unam…

【Linux】开发工具make/Makefile、进度条小程序

Linux 1.make/Makefile1.什么是make和Makefile&#xff1f;2.stat命令3.Makefile单个文件的写法4.Makefile多个文件的写法 2.进度条1.回车\r、换行\n2.缓冲区3.进度条1.倒计时程序2.进度条程序 1.make/Makefile 1.什么是make和Makefile&#xff1f; 一个工程中的源文件不计其…

Ubuntu22.04配置强化学习环境及运行相关Demo

什么是强化学习 强化学习&#xff08;Reinforcement Learning&#xff0c;简称 RL&#xff09;是机器学习中的一个重要分支&#xff0c;属于一种基于试错机制的学习方法。它通过让智能体&#xff08;Agent&#xff09;与环境&#xff08;Environment&#xff09;进行交互&…