Git 远程操作

1.分布式版本控制系统

        我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统!什么意思呢

        可以简单理解为,我们每个人的电脑上都是一个完整的版本库,这样你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个⼈如何协作呢?比方说你在自己电脑上改了文件A,你的同事想看到最新的文件A,这时,你只需要把你的修改推送到远程然后让同事进行拉取,就可以看到对方的修改了。

        分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。 

        在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在⼀个局域网内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障了(比如运气差,硬盘坏了,上面的所有东西全部丢失,包括git的所有内容)

2.远程仓库

        国内外都为我们提供了远程的Git仓库托管平台,国内的式Gitee,国外的式GitHub,github 是国外的网站,速度比较慢,所以我们使用gitee来托管代码。下面,我们来简单的介绍一下怎么使用  gitee 远程仓库。

        2.1 新建远程仓库

        新建远程项目仓库:

        填写基本信息

        Readme文件的作用是介绍我们这个仓库是干什么的 

        然后点击创建就可以了。

        创建完成后页面是这个样子。

        点进 .git 中会出现这两个,可以点进去看看,接下来我们会说。

        然后我们进入管理,设置仓库开源以及仓库成员管理。

        

        gitee给我们提供了不同的角色对应不同的权限,我们可以管理员旁边的 ‘ ?’ 来查询不同角色对应的不同权限。

        之后我们可以对仓库进行开源。

        点击 issues  然后点击新建issuse

        然后这里出现的就和 .git 文件中出现的那个issue 模板一样。 issues 就是让有问题的人与仓库管理者交流的地方,让有问题的人提出问题,然后管理者来解决问题。

        

        对问题进行描述完成,然后点击创建 

        创建完成后我们可以进入这里查看反映问题的人所反映的bug 

        在实际情况中,我们在dev分支进行开发的代码是不允许直接merge 到master 上的,因为不能保证自己的代码是否会出现bug 所以这时候我们需要提出申请,也就是 PR(Pull Requests) 申请单,来申请合并,然后由经管理者审批后才能合并。

3.克隆远程仓库

        克隆/下载远端仓库到本地,需要使用 git clone 命令,后面跟上我们的远端仓库的链接,远端仓库的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接:

        SSH 协议和 HTTPS 协议是 Git 最常使用的两种数据传输协议。SSH 协议使用了公钥加密和公钥登陆机制,体现了其实用性和安全性,使用此协议需要将我们的公钥放上服务器,由 Git 服务器进行管理。使用 HTTPS 方式时,没有要求,可以直接克隆下来。 

        我们先来演示HTTPS 协议的使用。

        注意我们不能在某一个本地仓库中使用git clone 命令!!!!

         SSH 方式。

        使用 SSH 方式克隆仓库,由于我们没有添加公钥到远端库中,服务器会拒绝我们的 clone 链接。需要我们设置:

        我们在主页面这里点击设置按钮。

        然后点击SSH公钥。

  第一步:创建SSH Key。在用户主目录下(在我们创建仓库的目录下),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa 和 id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。如果没有,需要创建SSH Key:

# 注意要输⼊⾃⼰的邮箱,在gitee上可以查看自己的邮箱,然后⼀路回⻋,使⽤默认值即可
[gm@hecs-401778 ~]$ ssh-keygen -t rsa -C "2428852510@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hyb/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hyb/.ssh/id_rsa
Your public key has been saved in /home/hyb/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:sepKZUwKIXjJxYcot49tvOW+Aa+pEhdsRqVDFSmgQZo 2689241679@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|*+oB=+ |
|==Oo+ . |
|E*+o .. . |
| *o + o |
| o *o + S |
|. o ==.. |
| o ..++ |
|. ..+.. |
| ...+o+. |
+----[SHA256]-----+

        顺利的话,可以在用户主目录里找到 .ssh 目录,里面有 id_rsa 和 id_rsa.pub 两个文件,这两
个就是SSH Key的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放心地告
诉任何人。

        将这份公钥一字不差的粘贴到添加公钥处。

        做完以上的工作就可以git clone 了!

        当我们从远程仓库克隆后,实际上 Git 会自动把本地的 master 分支和远程的 master 分支对应起来,并且,远程仓库的默认名称是 origin 。在本地我们可以使用 git remote 命令,来查看远程库的信息,如:

        

或者,用 git remote -v 显示更详细的信息:

        上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到 push 的地址。推送是什么意思呢,我们继续往下看。

 4. 向远程仓库推送

        本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容,例如新增⼀个 file1.c 文件: 

        提交时要注意,如果我们之前设置过全局的 name 和 e-mail,这两项配置需要和 gitee 上配置的用户名和邮箱⼀致,否则会出错。或者从来没有设置过全局的 name 和 e-mail,那么我们第⼀次提交时也会报错。这就需要我们重新配置下了,同样要注意需要和 gitee 上配置的用户名和邮箱一致。如何配置参考前几篇博客,在这里就不再赘述。

        到这里我们已经将内容提交至本地仓库中,如何将本地仓库的内容推送至远程仓库呢,需要使用 gitpush 命令,该命令用于将本地的分支版本上传到远程并合并,命令格式如下:

git push <远程主机名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程主机名> <本地分⽀名>

        此时我们要将本地的 master 分支推送到 origin 主机的 master 分支,则可以

        推送成功!这里由于我们使用的是 SSH 协议,是不用每⼀次推送都输入密码的,方便了我们的推送操作。如果你使用的是 HTTPS 协议,有个麻烦地方就是每次推送都必须输入口令。

         接下来,看看码云远端:

        代码已经被推送至远端了。

5.拉取远程仓库

        上面我们提到了git是分布式版本控制系统,别的程序员也会向远程仓库提交代码,此时远程仓库中的代码也就比你的本地仓库中的代码领先,此时就需要使用git pull 操作。

        为了方便我们直接在gitee上修改代码,但是直接在远程仓库中修改代码在实际中是不被体长的,所以实际中还是不要使用。

        此时,远程仓库是要领先于本地仓库一个版本,为了使本地仓库保持最新的版本,我们需要拉取下远端代码,并合并到本地。Git 提供了 git pull 命令,该命令用于从远程获取代码并合并本地的版本。格式如下:

git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git pull <远程主机名> <远程分⽀名>

        拉取成功了!

6.配置 Git 

        忽略特殊文件

        在日常开发中,我们有些文件不想或者不应该提交到远端,比如保存了数据库密码的配置文件,那怎么让 Git 知道呢?在 Git 工作区的根目录下创建一个特殊的 .gitignore 文件,然后把要忽略的文件名填进去,Git 就会自动忽略这些文件了。

        不需要从头写 .gitignore 文件,gitee 在创建仓库时就可以为我们生成,不过需要我们主动勾选一下:跟我我们所使用的语言来选择ignore 模板文件。

        如果当时没有选择这个选择,在工作区创建⼀个也是可以的。无论哪种方式,最终都可以得到一个完整的 .gitignore 文件,例如我们想忽略以 .so 和 .ini 结尾所有文件, .gitignore 的内容如下:

        但有些时候,你就是想添加⼀个文件到 Git,但由于这个文件被 .gitignore 忽略了,根本添加不了,那么可以用 -f 强制添加:

git add -f [filename] 

        但是这样写会违背 .gitignore 文件的初衷,我们也可以在 .gitignore 文件中设置,那些文件是一定被git追踪管理的。

        或者你发现,可能是 .gitignore 写得有问题,需要找出来到底哪个规则写错了,比如说 a.so 文件是要被添加的,可以用 git check-ignore 命令检查:

        Git 会告诉我们, .gitignore 的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规
则。

        还有些时候,当我们编写了规则排除了部分文件时,例如:

# 排除所有.开头的隐藏⽂件:
.*

7.给命令配置别名

        在我们使用 Git 期间,有些命令敲的时候着实让人头疼(太长了。。),幸运的是,git支持对命令进行简化!

        举个例子,将 git status 简化为 git st ,对应的命令为:

git config --global alias.st status 

        --global 参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。如果不加,那只针对当前的仓库起作用。

        再来配置⼀个 git log --graph --pretty=oneline --abbrev-commit

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows下PostgreSQL安装教程

一、下载 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

提醒一下!今年考研的人不要太老实了!!

今年准备计算机考研的同学&#xff0c;别太老实了&#xff01;别人说什么你就信什么 如果你的工作能力不足以支撑找到一个满意的工作&#xff0c;那我建议再沉淀两年&#xff01; 很多同学其实有点眼高手低&#xff0c;在计算机专业&#xff0c;低于1w的工作看不上&#xff0…

论文阅读:Scalable Diffusion Models with Transformers

Scalable Diffusion Models with Transformers 论文链接 介绍 传统的扩散模型基于一个U-Net骨架&#xff0c;这篇文章提出了一种新的扩散模型结构&#xff0c;将U-Net替换为一个transformer&#xff0c;并将这种结构称为Diffusion Transformers (DiTs)。他们还发现&#xff…

【网络】:HTTP服务器

HTTP服务器 一.预备知识二.HTTP的请求和响应三.写一个简单的HTTP服务器四.返回响应五.HTTP方法和状态码 一.预备知识 1.域名 https://www.baidu.com&#xff0c;这是一个域名。在技术角度上&#xff0c;访问一个服务器其实只需要知道它的ip和域名就行了&#xff0c;而域名主要…

电力物联网系统设计

电力物联网系统设计 简介 在新能源行业从业多年&#xff0c;参与和负责过大大小小的的项目&#xff0c;发电侧、电网侧、用户侧系统都有过实际的项目经验&#xff0c;这些项目或多或少都有物联网采集方面的需求&#xff0c;本篇文章将会对电力行业物联网经验做一个总结分享。 …

LeetCode 刷题 [C++] 第3题.无重复字符的最长子串

题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 题目分析 可以使用滑动窗口加哈希表来实现&#xff1a; 使用start和end两个变脸来表示滑动窗口的头部位置和尾部位置&#xff0c;两者开始均为0&#xff1b;借助哈希表来记录已经遍…

六、长短时记忆网络语言模型(LSTM)

为了解决深度神经网络中的梯度消失问题&#xff0c;提出了一种特殊的RNN模型——长短期记忆网络&#xff08;Long Short-Term Memory networks, LSTM&#xff09;&#xff0c;能够有效的传递和表达长时间序列中的信息并且不会导致长时间前的有用信息被忽略。 长短时记忆网络原理…

vue iis 配置

下载安装两个IIS模块 1). 传送门&#xff1a;URL Rewrite 2). 传送门&#xff1a;Application Request Routing 注 : 只有在 服务器的主页 有Application Request Routing 部署VUE网站 生成网站 在VUE项目打包生成出发布文件,即文件夹 dist,此处忽略 复制到你需要存放网站的…

10 事务控制

文章目录 事务控制事务概述事务操作事务四大特性事务隔离级别 事务控制 事务概述 MySQL 事务主要用于处理操作量大&#xff0c;复杂度高的数据。比如说&#xff0c;在人员管理系统中&#xff0c;你删除一个人员&#xff0c;既需要删除人员的基本资料&#xff0c;也要删除和该…

kafka报文模拟工具的使用

日常项目中经常会碰到消费kafka某个topic的数据&#xff0c;如果知道报文格式&#xff0c;即可使用工具去模拟发送报文&#xff0c;以此测试代码中是否能正常消费到这个数据。 工具资源已上传&#xff0c;可直接访问连接下载&#xff1a;https://download.csdn.net/download/w…

Learn OpenGL 02 你好,三角形

图形渲染管线 图形渲染管线的每个阶段的抽象展示。要注意蓝色部分代表的是我们可以注入自定义的着色器的部分 首先&#xff0c;我们以数组的形式传递3个3D坐标作为图形渲染管线的输入&#xff0c;用来表示一个三角形&#xff0c;这个数组叫做顶点数据(Vertex Data)。 顶点着色…

编译内核错误 multiple definition of `yylloc‘

编译内核错误 # make ARCHarm CROSS_COMPILEarm-mix410-linux- uImageHOSTLD scripts/dtc/dtc /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss0x10): multiple definition of yylloc; scripts/dtc/dtc-lexer.lex.o:(.bss0x0): first defined here collect2: error: ld ret…

昏暗场景增强-低照度增强-弱光增强(附代码)

引言 随着现代科技的发展&#xff0c;图像采集设备已经渗透到生活的方方面面&#xff0c;然而在昏暗场景、低照度或弱光条件下&#xff0c;图像的质量往往受到严重影响&#xff0c;表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。这类图像对于人眼识别和计算机视觉…

FPGA IBUFG

IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接&#xff0c;与普通IO和其它内部CLB等没有物理连接。 所以&#xff0c;IBUFG输入的不能直接接另外信号。 GTH transceiver primitives are called GTHE3_COMMON and GTHE3_CHANNEL in UltraScale FPGAs, an…

部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)

目录 一、LVSKeepalived高可用群集 1、实验环境 2、 主和备keepalived的配置 2.1 yum安装ipvsadm和keepalived工具 2.2 添加ip_vs模块并开启ipvsadm 2.3 修改keepalived的配置文件 2.4 调整proc响应参数&#xff0c;关闭linux内核的重定向参数响应 2.5 将主服务器的kee…

SpringBoot整合Redis实现分布式锁

SpringBoot整合Redis实现分布式锁 分布式系统为什么要使用分布式锁&#xff1f; 首先&#xff0c;分布式系统是由多个独立节点组成的&#xff0c;这些节点可能运行在不同的物理或虚拟机器上&#xff0c;它们通过网络进行通信和协作。在这样的环境中&#xff0c;多个节点可能同…

群智能优化算法:巨型犰狳优化算法(GAO)求解23个基准函数(提供MATLAB代码)

一、巨型犰狳优化算法 巨型犰狳优化算法&#xff08;Giant Armadillo Optimization&#xff0c;GAO&#xff09;由Omar Alsayyed等人于2023年提出&#xff0c;该算法模仿了巨型犰狳在野外的自然行为。GAO设计的基本灵感来自巨型犰狳向猎物位置移动和挖掘白蚁丘的狩猎策略。GAO…

LLM 构建Data Muti-Agents 赋能数据分析平台的实践之①:数据采集

一、 概述 在推进产业数字化的过程中&#xff0c;数据作为最重要的资源是优化产业管控过程和提升产业数字化水平的基础一环&#xff0c;如何实现数据采集工作的便利化、高效化、智能化是降低数据分析体系运转成本以及推动数据价值挖掘体系的基础手段。随着数字化在产业端的推进…

电脑小问题:Windows更新后黑屏

Windows 更新后黑屏解决方法 在 Windows 更新后&#xff0c;伴随了一个小问题&#xff0c;电脑启动后出现了桌面黑屏。原因可能是火绒把 explorer.exe 当病毒处理了。 下面讲解 Windows 更新后黑屏的解决方法&#xff0c;步骤如下&#xff1a; 1. 按 ctrl alt delete 组合键…

JAVA实战开源项目:生活废品回收系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…