Git远程操作
目录
1.远程操作
1.1理解分布式版本控制系统
1.2远程仓库.
1.2.1新建远程仓库
1.2.2克隆远程仓库
1.2.3向远程仓库推送
1.2.4拉取远程仓库
1.3配置Git
1.3.1忽略特殊文件
1.3.2给命令配置别名
2.标签管理
2.1理解标签
2.2创建标签
2.3操作标签
1.远程操作
1.1理解分布式版本控制系统
我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者
计算机上。而我们的Git其实是分布式版本控制系统!什么意思呢?
可以简单理解为,我们每个人的电脑上都是一个完整的版本库,这样你工作的时候,就不需要联网
了,因为版本库就在你自己的电脑上。既然每个人电脑.上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑.上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某--个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。有了这个“中.央服务器”的电脑,这样就不怕本地出现什么故障了(比如运气差,硬盘坏了,.上面的所有东西全部丢失,包括git的所有内容)
1.2远程仓库.
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只
有一台机器有一个原始版本库,此后,别的机器可以“克隆” 这个原始版本库,而且每台机器的版本
库其实都是一样的,并没有主次之分。
你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?
其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,现实生活中是不会有人这么傻的在一台电脑上搞几个远程库玩,因为一台电脑.上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在一台电脑上怎么克隆多个仓库。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
1.2.1新建远程仓库
新建远程项目仓库:
填写基本信息
创建成功
创建成功后,我们可以对远程仓库进行一个基本的设置:开源or私有
从创建好的远程仓库中我们便能看到,之前在本地学习过的分支,也存在于远程仓库中并被管理起来了。刚创建的仓库有且只有一个默认的master分支。
1.2.2克隆远程仓库
克隆/下载远端仓库到本地,需要使用git clone 命令,后面跟上我们的远端仓库的链接,远端仓库
的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接:
SSH协议和HTTPS协议是Git最常使用的两种数据传输协议。SSH 协议使用了公钥加密和公钥登陆机制,体现了其实用性和安全性,使用此协议需要将我们的公钥放上服务器,由Git服务器进行管理。使用HTTPS方式时,没有要求,可以直接克隆下来。
使用HTTPS方式:
使用ssh方式
使用SSH方式克隆仓库,由于我们没有添加公钥到远端库中,服务器拒绝了我们的clone链接。需要我们设置一下:
第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有
id_ rsa和| id_ rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,需要创建
SSH Key:
顺利的话,可以在用户主目录里找到.ssh目录,里面有id_ _rsa 和id_ rsa.pub 两个文件,这两
个就是SSH Key的秘钥对,id_ rsa 是私钥,不能泄露出去,id_ rsa.pub 是公钥,可以放心地告
诉任何人。
第二步: 添加自己的公钥到远端仓库。
点击ssh公钥选项,进行设置:
点击确认后,需要对你进行认证,输入你的账号密码即可。至此,我们的准备工作全部做完,欢快的clone吧。
done,成功!如果有多个人协作开发,GitHub/Gitee 允许添加多个公钥,只要把每个人的电脑上的!
Key都添加到GitHub/Gitee,就可以在每台电脑上往GitHub/Gitee.上提交推送了。
当我们从远程仓库克隆后,实际上Git会自动把本地的master分支和远程的master分支对应起来,
并且,远程仓库的默认名称是origin。 在本地我们可以使用git remote 命令,来查看远程库的
信息,如:
或者,用git remote -v 显示更详细的信息:
上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。推送是什么意思呢,我们继续往下看。
1.2.3向远程仓库推送
本地已经clone成功远程仓库后,我们便可以向仓库中提交内容,例如新增一个 file. txt文件:
提交时要注意,如果我们之前设置过全局的name和e-mail,这两项配置需要和gitee上配置的用户
名和邮箱一致,否则会出错。或者从来没有设置过全局的name和e-mail,那么我们第- -次提交时也
会报错。这就需要我们重新配置下了,同样要注意需要和gitee.上配置的用户名和邮箱一致。
到这里我们已经将内容提交至本地仓库中,如何将本地仓库的内容推送至远程仓库呢,需要使用git
push命令,该命令用于将本地的分支版本上传到远程并合并,命令格式如下:
此时我们要将本地的master分支推送到origin主机的master分支,则可以:
推送成功!这里由于我们使用的是SSH协议,是不用每一次推送都输入密码的,方便了我们的推送操作。如果你使用的是HTTPS协议,有个麻烦地方就是每次推送都必须输入口令。
接下来,看看码云远端:
代码已经被推送至远端了:
1.2.4拉取远程仓库
在gitee .上点击README.md文件并在线修改它:
修改内容:
此时,远程仓库是要领先于本地仓库一个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git 提供了git pull 命令,该命令用于从远程获取代码并合并本地的版
本。格式如下:
使用:
可以发现,拉取成功了。
1.3配置Git
1.3.1忽略特殊文件
在日常开发中,我们有些文件不想或者不应该提交到远端,比如保存了数据库密码的配置文件,那怎么让Git知道呢?在Git工作区的根目录下创建- -个特殊的. gitignore文件,然后把要忽略的文件
名填进去,Git就会自动忽略这些文件了。
不需要从头写.gitignore文件, gitee在创建仓库时就可以为我们生成,不过需要我们主动勾选一下
如果当时没有选择这个选择,在工作区创建一个也是 可以的。无论哪种方式,最终都可以得到一个完整的.gitignore文件,例如我们想忽略以.so和. ini结尾所有文件,. gitignore的内容
如下:
在.giti gnore文件中也可以指定某个确定的文件。
最后一步就是把. giti gnore也提交到远端,就完成了:
接着我们就来验证-下.gitignore文件的能力, 在工作区新增两个文件a.so b. ini:
检验 . gitignore的标准就是git status 命令是不是说working tree clean 。我们发现Git并没有提示在工作区中有文件新增,果然.gitignore生效了!
但有些时候,你就是想添加一个文件到Git,但由于这个文件被.gitignore忽略了,根本添加不
了,那么可以用- f强制添加:
或者你发现,可能是. gitignore写得有问题,需要找出来到底哪个规则写错了,比如说a.so文件
是要被添加的,可以用git check-ignore 命令检查:
Git会告诉我们,. gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规
则。还有些时候,当我们编写了规则排除了部分文件时,例如:
但是我们发现. *这个规则把. giti gnore也排除了。虽然可以用git add -f强制添加进去,
但有强迫症的童鞋还是希望不要破坏.gitignore 规则,这个时候,可以添加一条例外规则:
把指定文件排除在. gitignore规则外的写法就是! +文件名,所以,只需把例外文件添加进去即可。
1.3.2给命令配置别名
在我们使用Git期间,有些命令敲的时候着实让人头疼(太长了。。),幸运的是,git支持对命令进
行简化!
举个例子,将git status 简化为git st,对应的命令为:
--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。如果不加,那只
针对当前的仓库起作用。
好了,现在敲git st看看效果:
再来配置一个git last, 让其显示最后一次提交信息:
这样,用git last就能显示最近一次的提交:
2.标签管理
2.1理解标签
标签tag,可以简单的理解为是对某次commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次commit 起一个v1.0这样的标签来标识里程碑的意义。这有什么用呢?相较于难以记住的commit id,tag 很好的解决这个问题,因为tag一定要给一个让人容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使用标签就能很快定位到。
2.2创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上
然后,敲命令git tag [name] 就可以打一个新标签:
可以用命令git tag 查看所有标签:
默认标签是打在最新提交的commit.上的。那如何在指定的commit.上打标签呢?方法是找到历史提
交的commit id,然后打上就可以了,示例如下:
注意,标签不是按时间顺序列出,而是按字母排序的。
可以用git show [tagname]查看标签信息。
Git还提供可以创建带有说明的标签,用-a指定标签名,-m指定说明文字,格式为:
另外,打完标签之后,使用tree .git 命令查看- -下你的本地库有什么变化,肯定能帮助你理解!
2.3操作标签
如果标签打错了,也可以删除:
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagamne>
当然,如果你本地有很多标签,也可以一次性的全部推送到远端:
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
然后,从远程删除。删除命令也是push,但是格式如下:
相关文章:

Git远程操作
目录 1.远程操作 1.1理解分布式版本控制系统 1.2远程仓库. 1.2.1新建远程仓库 1.2.2克隆远程仓库 1.2.3向远程仓库推送 1.2.4拉取远程仓库 1.3配置Git 1.3.1忽略特殊文件 1.3.2给命令配置别名 2.标签管理 2.1理解标签 2.2创建标签 2.3操作标签 1.远程操作 1.1理…...

链表基础知识(一、单链表)
一、链表表示和实现 顺序表的问题及思考 问题: 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当…...

mysql的ON DELETE CASCADE 和ON DELETE RESTRICT区别
ON DELETE CASCADE 和 ON DELETE RESTRICT 是 MySQL 中两种不同的外键约束级联操作。它们之间的主要区别在于当主表中的记录被删除时,子表中相关记录的处理方式。 ON DELETE CASCADE: 当在主表中删除一条记录时,所有与之相关的子表中…...

如何快速将图片转为excel?
一、打开金鸣表格文字识别软件。 二、点击添加文件按钮,在打开的窗口中选择目标图片,然后点击“打开”,将图片添加进待识别的列表中。 三、点击提交识别或识别全部。 四、识别完成后点击“打开文件”即可打开识别好的结果文件(EXC…...
元编程(Metaprogramming)
本章将介绍第8️⃣种编程范式---元编程,以及它的优缺点、案例分析和小项目的代码示例。 优点 元编程的优点: 灵活性和可重用性:元编程允许在运行时生成代码,使得程序更加灵活和可重用。可以根据需要动态生成代码片段࿰…...

IEEE Transactions on Industrial Electronics工业电子TIE论文投稿须知
一、背景 IEEE TIE作为控制领域的TOP期刊,接收机器人、控制、自动驾驶、仪器和传感等方面的论文,当然范围不止这些,感兴趣的可以自行登录TIE官网查看。所投稿论文必须经过实验验证,偏工程应用类,当然也必须有方法上的…...

Linux--操作系统
1. 常见的操作系统 Windowsmac OSLinuxiOSAndroid 2. 操作系统的定义 操作系统直接运行在计算机上的系统软件, 它是控制硬件和支持软件运行的计算机程序。 3. 操作系统的作用 向下控制硬件向上支持软件的运行,具有承上启下的作用。 4.总结 操作系统…...

HarmonyOS—实现UserDataAbility
UserDataAbility接收其他应用发送的请求,提供外部程序访问的入口,从而实现应用间的数据访问。Data提供了文件存储和数据库存储两组接口供用户使用。 文件存储 开发者需要在Data中重写FileDescriptoropenFile(Uriuri,Stringmode)方法来操作文件…...

Java实现插入排序及其动图演示
插入排序是一种简单直观的排序算法。它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置,从而得到一个新的、元素个数加一的有序序列。 具体的插入排序算法过程如下: 从第一个元素开始,认为第一个元素已经是有序序列。取…...

设计模式——原型模式(创建型)
引言 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先, 你必须新建一个属于…...

深眸科技以机器视觉高性能优势,为消费电子行业提供优质解决方案
机器视觉技术近年来发展迅速,基于计算机对图像的处理与分析,能够识别和辨别目标物体,被广泛应用于人工智能、智能制造等领域。 机器视觉凭借着高精度、高效率、灵活性和可靠性等优势,不断推进工业企业生产自动化和智能化进程&…...
React setState()的两种书写方法对比
在React中,setState()方法是一个非常重要的函数,用于更新组件的状态。它有两种常见的书写方式:对象解构赋值和使用函数。本文将对比这两种方法,并解释它们的优缺点和适用场景。 首先,让我们来看看对象解构赋值这种方法…...

orb-slam2学习总结
目录 视觉SLAM 1、地图初始化 2、ORB_SLAM地图初始化流程 3、ORB特征提取及匹配 1、对极几何 2、对极约束 (epipolar constraint) 3、基础矩阵F、本质矩阵E 5、单目尺度不确定性 6、单应矩阵(Homography Matrix) 6.1 什么是单应矩…...

通过wireshark判断web漏洞的流量特征
sql注入 定位http协议,通过查找get请求定位到关键字 抓到关键字union select xss 定位get请求的关键字 文件上传 找到对应的上传数据包,追踪tcp流 文件包含、文件读取 查看url找到包含的关键字 在根路径写入一个phpinfo(); 使用../进行目录遍…...
Command ‘npm‘ not found, but can be installed with:sudo apt install npm 解决方案
问题描述 今天在执行 npm install -g npx 报错 Command npm not found, but can be installed with: sudo apt install npm 解决方案 sudo apt-get remove npm sudo apt-get remove nodejs-legacy sudo apt-get remove nodejs sudo rm /usr/bin/node sudo apt-get install …...

【Hadoop_04】HDFS的API操作与读写流程
1、HDFS的API操作1.1 客户端环境准备1.2 API创建文件夹1.3 API上传1.4 API参数的优先级1.5 API文件夹下载1.6 API文件删除1.7 API文件更名和移动1.8 API文件详情和查看1.9 API文件和文件夹判断 2、HDFS的读写流程(面试重点)2.1 HDFS写数据流程2.2 网络拓…...
go-zero开发入门之网关往rpc服务传递数据
go-zero 的网关往 rpc 服务传递数据时,可以使用 headers,但需要注意前缀规则,否则会发现数据传递不过去,或者对方取不到数据。 go-zero 的网关对服务的调用使用了第三方库 grpcurl,入口函数为 InvokeRPC: …...

Word插件-好用的插件-批量插入图片-大珩助手
现有100张图片,需要批量插入word中,并在word中以每页6张图片的形式呈现,请问怎样做? 使用word大珩助手,多媒体-插入图片,根据图片的长宽,选择连续图片、一行2个图或一行3个图,可一次…...

小程序域名SSL证书能用免费的吗?
众所周知,目前小程序要求域名强制使用https协议,否则无法上线。但是对于大多数开发者来说,为每一个小程序都使用上付费的SSL证书,也是一笔不小的支出。那么小程序能使用免费的SSL证书吗? 答案是肯定的。目前市面上可选…...

selenium自动化(中)
显式等待与隐式等待 简介 在实际工作中等待机制可以保证代码的稳定性,保证代码不会受网速、电脑性能等条件的约束。 等待就是当运行代码时,如果页面的渲染速度跟不上代码的运行速度,就需要人为的去限制代码执行的速度。 在做 Web 自动化时…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...