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

news2025/1/11 12:36:26

文章目录

  • 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.coloradmin.cn/o/2245011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具

python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具 文章目录 python实战案例----使用 PyQt5 构建简单的 HTTP 接口测试工具项目背景技术栈用户界面核心功能实现结果展示完整代码总结 在现代软件开发中,测试接口的有效性与响应情况变得尤为重要。本文将指导…

JavaScript的类型转换

类型转换 : 隐式转换和显示转换 一般的,默认单选框和多选框传过来的值都是字符串 JavaScript是弱数据类型:JavaScript不知道变量属于哪种类型,需要赋值了才清楚。 缺点:使用表单、prompt获取过来的数据默认是字符串类…

Spring Boot中使用AOP和反射机制设计一个基于redis的幂等注解,简单易懂教程

由于对于一些非查询操作,有时候需要保证该操作是幂等的,该帖子设计幂等注解的原理是使用AOP和反射机制获取方法的类、方法和参数,然后拼接形成一个幂等键,当下一次有重复操作过来的时候,判断该幂等键是否存放&#xff…

一文详细深入总结服务器选型

1. 题记: 服务器选型工作是项目规划检讨的一项非常重要的工作,本文详细深入总结服务器选型。 2. 服务器基础知识概览 2.1 服务器的定义与功能 2.1 .1 定义 服务器是一种高性能计算机,其设计目的是在网络中提供服务。它可以处理来自多个客…

接口测试用例设计的关键步骤与技巧解析!

简介 接口测试在需求分析完成之后,即可设计对应的接口测试用例,然后根据用例进行接口测试。接口测试用例的设计也需要用到黑盒测试用例设计方法,和测试流程与理论章节的功能测试用例设计的方法类似,设计过程中还需要增加与接口特…

WPF下 DataGrid加入序号列

先上代码&#xff1a; <DataGrid Name"DGV" AutoGenerateColumns"False" Grid.Row"0" Grid.Column"0" HorizontalGridLinesBrush"RoyalBlue" VerticalGridLinesBrush"Tomato" CanUserAddRows"False&qu…

WebSocket详解、WebSocket入门案例

目录 1.1 WebSocket介绍 http协议&#xff1a; webSocket协议&#xff1a; 1.2WebSocket协议&#xff1a; 1.3客户端&#xff08;浏览器&#xff09;实现 1.3.2 WebSocket对象的相关事宜&#xff1a; 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…

大模型本地部署实践:Ollama+Open-WebUI(MacOS)

目录 什么是Ollama Ollama安装 对话界面可视化&#xff1f;Open-WebUI&#xff01; 安装Open-WebUI 什么是Ollama Ollama是一个为简化大语言模型本地部署与交互的开源框架。它提供了用户友好的接口&#xff0c;帮助开发者和模型爱好者在没有依赖外部API的基础上高效地运行、…

12万字 | 企业智慧数字化运营平台重构建设项目实施技术方案

本项目旨在推动企业数字化运营平台的重构&#xff0c;以支持组织改革和数字化转型战略的实施&#xff0c;提升企业智慧化运营管理能力。项目将优化订单受理流程&#xff0c;增强业务受理能力&#xff0c;提高客户服务体验和内部管控能力&#xff0c;同时提升营销资源管理的制度…

基于Lora通讯加STM32空气质量检测WIFI通讯-分享

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着环境污染问题的日益严重&#xff0c;空气质量的监测与管理已经…

cesium for unity的使用

先聊聊导入 看到这里的因该能够知道&#xff0c;官网以及网上绝大多数的方法都导入不进来&#xff0c;那么解决方法如下: 两个链接&#xff1a;按照顺序依次下载这两个tgz和zip&#xff0c;其中tgz为主要部分&#xff0c;zip为示例工程项目 如果您要查看示例工程项目的话&am…

数据结构_图的遍历

深度优先搜索遍历 遍历思想 邻接矩阵上的遍历算法 void Map::DFSTraverse() {int i, v;for (i 0; i < MaxLen; i){visited[i] false;}for (i 0; i < Vexnum; i){// 如果顶点未访问&#xff0c;则进行深度优先搜索if (visited[i] false){DFS(i);}}cout << endl…

MySQL时间字段TIMESTAMP和DATETIME

SELECT global.time_zone, session.time_zone;查询数据库的全局时区和当前会话的时区信息&#xff0c;一般如果使用navicat进行连接&#xff0c;没有显示指定时区信息&#xff0c;会默认使用system_time_zone。 可以使用 SET time_zone 08:00; SELECT global.time_zone, sess…

AQS 理解 及不可重入锁实现

由于目前水平有限&#xff0c;只是写出作者目前对 aqs的简单理解&#xff0c;有错误还请评论指证 AQS是什么 Aqs是java.util.concurrent 包下的一个抽象队列 同步器类&#xff0c;被简写为英文AQS&#xff0c; 我认为 可以把他理解 为一个 实现 自定义 锁的 一个具体的框架 …

nginx源码安装配置ssl域名

nginx源码安装 下载 wget http://nginx.org/download/nginx-1.24.0.tar.gz 解压 tar -zxvf nginx-1.24.0.tar.gz 下载openssl apt install openssl 安装nginx cd nginx-1.24.0 sudo apt-get install libpcre3 libpcre3-dev ./configure --prefix=/home/nginx24 --with-http_ss…

【笔记】Android Gradle Plugin配置文件相关说明-libs.versions.toml

版本号 文件路径&#xff1a;Project\gradle\libs.versions.toml 直接搜索versions.agp是找不到的&#xff0c;这是变量引用的写法&#xff0c;查询 agp版本可以直接查版本号。 [versions] agp "8.5.0-alpha08" junit "4.13.2" junitVersion "1.…

支付宝租赁小程序的优势与应用前景分析

内容概要 在这个快节奏的时代&#xff0c;租赁服务越来越成为大家生活中的一部分。而支付宝租赁小程序正是这个大潮流中的一颗璀璨明珠。通过简单易用的界面和强大的功能&#xff0c;这个小程序不仅让用户在租赁过程中获得了前所未有的便利&#xff0c;也为商家提供了新的商业…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…

深入理解 Redis跳跃表 Skip List 原理|图解查询、插入

1. 简介 跳跃表 ( skip list ) 是一种有序数据结构&#xff0c;通过在每个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。 在 Redis 中&#xff0c;跳跃表是有序集合键的底层实现之一&#xff0c;那么这篇文章我们就来讲讲跳跃表的实现原理。 2. …

MediaSession学习总结

1.框架预览 2.用法 2.1参考链接&#xff1a; MediaSession 简单使用 2.2 服务端要实现MediaBrowserService&#xff1b; 主要实现的功能&#xff1a; mPlaybackState new PlaybackStateCompat.Builder().setState(PlaybackStateCompat.STATE_NONE, currentPostion, 1.0f).…