Git | 远程操作

news2024/11/21 0:32:48

Git | 远程操作

文章目录

  • Git | 远程操作
    • 0、分布式版本控制系统概念
    • 1、创建远程仓库
    • 2、克隆远程仓库
      • https方式
      • ssh方式
    • 3、推送至远程仓库
    • 4、本地拉取远程仓库
    • 5、配置Git
      • 忽略特殊文件
      • 给命令配置别名
    • 6、标签管理
      • 创建标签
      • 操作标签

0、分布式版本控制系统概念

Git是一个分布式版本控制系统,可以进行多人协作开发。

一个团队中每个人的电脑都是一个完整的版本库,一个版本库控制系统有一台充当中央服务器的电脑,用来方便交换、同步彼此之间的修改。与此同时还能一定程度上避免因为本地故障而阻塞项目进度,例如硬盘损坏而导致的文件丢失。

这里的起着中央服务器的电脑通常不用我们自己花钱去购买,目前比较主流使用gitee或者github这样提供Git仓库托管服务的网站,在上边同步远程仓库。

基于本地网络情况以及访问效率上来讲,这里使用的是gitee。

1、创建远程仓库

具体步骤如下:

  1. 进入gitee官网,注册并登录,点击导航栏右上角的加号,点击新建仓库在这里插入图片描述

  2. 填写基本信息建议仓库名填成英文的,路径会自动映射上去,仓库介绍为非必填项,一开始可以先设置成私有的;初始化仓库的话可以选择语言,练习的时候不选择也可以;设置模版中ReadMe文件勾选之后项目初始化时会多个Readme文件和Readme.en文件【英文】(一般为仓库的使用说明文档),后边的不选择也可以。在这里插入图片描述

  3. 点击创建

补充:后续更改仓库的开源状态或者更改仓库信息,点击仓库里的管理:在这里插入图片描述

2、克隆远程仓库

clone/download远程仓库到本地(windows/linux本地),需要使用git clone命令。(这里贴的是windows的,但linux的跟这个差不多)(ps,只有这里贴的是windows的,其他的都是LinuxOS的)

一般来说,克隆远程仓库有两种方式

  1. 通过https方式
  2. 通过ssh方式

上边这两种方式,是git最常使用的数据传输协议

https方式

  1. 复制命令到终端执行【点击到对应文件夹这里是e盘,右键git bash那里,粘贴并敲下回车】在这里插入图片描述

  2. 再次查看e盘,发现已经克隆下来在这里插入图片描述

为方便演示,这里我先将clone下来的仓库删除。

ssh方式

ssh协议使用公钥加密和公钥登录机制,因此,相较于使用https,使用此协议多了一步——将我们的公钥放在服务器上,由Git服务器进行管理。

  1. 拿到自己的公钥

    1. 输入ll -a,查看当前仓库目录中有没有.ssh目录,.ssh目录下有没有id_rsa和id_rsa.pub两个文件

    2. 若有,则跳过生成公钥和私钥的步骤,若没有,输入ssh-keygen -t rsa -C "xxx@qq.com"生成

    3. 此时再次查看ll -a,进入.ssh目录

      这里存在一种情况,就是你的git装到了其他盘,可能生成的文件在对应的路径下,此时再查看的时候可以通过路径信息查看对应的信息

    4. 查看id_rsa.pub(公钥),并复制

  2. 添加自己的公钥到远程仓库

    设置–》安全设置–》SSH公钥

    标题:可以使用mykey(实际上随便命名) 公钥部分将从文件中查到的内容原原本本复制上去,点击确定

  3. 再次复制ssh方式的clone命令执行

3、推送至远程仓库

这里因为之前配置原因,已经手动将本地库与远程的remote-gitcode做了连接,但是后续又进行了test_factory1的克隆,最终还是推送到了remote-gitcode上,精力原因不再修改。

对于windows来说推送到远程可以通过图形化界面方式(需要用小乌龟)和非图形化界面的方式,而对于Linux来说一般就是通过git命令进行操作,这里主要说的是非图形化界面方式即命令行方式。

推送之前我们需要确保已经将gitee账户的姓名和邮箱配置上去了,查看方式:

git config -l在这里插入图片描述

以将版本库中的file5push到远程为例:

  1. 创建并编辑file5
  2. add file5 commit file5
  3. push file5在这里插入图片描述

其中git push origin master:master,origin是远程主机名,后边是本地分支名:远程分支名

这里有两个文件被修改是因为我之前就连接过其他仓库remote-gitcode,又在这个仓库下克隆的test_factory1,所以相当于是把内容推送到remote-gitcode上去了。

如果想推送到test_factory1上可以单独找一个目录进行克隆并提交和push,整体流程是这样,不再演示。

4、本地拉取远程仓库

在gitee上边修改ReadMe文件(实际工作中最好不要动,这里只是模拟),本地拉取远程的文件:

git pull origin master:master

其中本地分支名和远程分支名相同时,可以省略远程分支名

5、配置Git

忽略特殊文件

背景:不想提交保存数据库密码的配置文件,就不让git追踪管理某些文件

解决:git工作区中有个.gitignore文件

  1. vim .gitignore

    # 省略选择模本的内容
    ...
    # My configurations:
    *.ini
    *.so
    
  2. git add .

  3. git commit - m "add .gitignore"

  4. git push origin maser

这样操作后,即使我们修改了ini文件,它也不会被追踪,so文件同理

使用的过程中可能存在以下情况

  1. 我们想强制添加一个已经被忽略的文件:git add -f [filename]

  2. 查看被忽略的文件到底是哪里设置了:git check-ignore -v a.so

  3. .gitignore已经配置忽略so文件,但是希望不忽略a.so文件:

    例外规则:!文件名==》!a.so

给命令配置别名

  1. 将git status简化为git st:git config --global alias.st status
  2. 显示最后一次提交信息:git config --global alias.last 'log -1'

配置完别名,原来的也可以使用

6、标签管理

标签是对某次commit的标识,eg:v1,v2,

版本包或许与这里有些联系,版本号或许就是标签?

标签可以通过远程仓库查看在这里插入图片描述

创建标签

1、初试

  1. 切换到需要打标签的分支上:git branch【打当前的分支的当前版本】
  2. git tag [name]:这里以v1.0为例
  3. git tag查看所有标签
  4. 之后可以通过git push origin <tagname>提交,然后在远程就可以看到了

2、在指定版本的commit上打标签:

  1. 首先找到想要打标签的历史版本,可以通过查日志的方式:git log --pretty=oneline --abbrev-commit
  2. 对这次提交打标签(若标签名为v0.7):git tag v0.7 部分或全部commitid
  3. 通过git tag查看:【标签不是按时间给的,是按照字母排序的】

另外,可以通过git show [tagname]查看标签信息

操作标签

创建的标签只会存储在本地,不会自动推送到远程。

  1. 如果操作错误想删除,可以执行git tag -d [tagname];

  2. 如果想要提交,执行git push origin <tagname>即可

  3. 想要删除已经推送到远程的标签

    1. 先本地删除:git tag -d [tagname]
    2. 再从远程删除:git push origin :refs/tags/[tagname]
      tag -d [tagname]`;

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

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

相关文章

【小迪安全2023】第58天:服务攻防-应用协议设备KibanaZabbix远控向日葵VNCTV

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

RPA机器人怎么操作知乎好物推荐自动点击【添加】商品按钮?

先看需要实现的效果&#xff08;启动机器人-点击收益&#xff08;打开商品卡片列表&#xff09;-点击添加&#xff08;自动添加商品卡片到文章&#xff09;&#xff09;&#xff1a; 学员提问&#xff1a; 知乎上点击好物推荐【添加】商品按钮&#xff0c;iframe的元素是动态的…

力扣每日一题-查询网格图中每一列的宽度-2024.4.27

力扣题目&#xff1a;查询网格图中每一列的宽度 题目链接: 2639.查询网格图中每一列的宽度 题目描述 代码思路 双层for循环遍历整个矩阵容易想到&#xff0c;只要能想到使用整数转字符串的技巧&#xff08;“” 字符串&#xff09;&#xff0c;即可完成题目 代码纯享版 c…

基于SpringBoot + Vue实现的家政服务管理系统设计与实现+毕业论文+答辩PPT+指导搭建视频(包运行成功)

目录 项目介绍 论文展示 资源获取 项目介绍 家政服务管理平台是一个管理信息系统&#xff0c;为了宣传的需要&#xff0c;为了给用户提供方便快捷的服务&#xff0c;从而设计了家政服务管理平台。管理员可以通过这个系统把家政服务信息发布出去&#xff0c;可以方便用户快…

【AI导师写作】毕业论文答辩PPT生成

无论是大专、本科或者硕博&#xff0c;撰写毕业论文、开题报告、文献综述、任务书、课程论文、调研报告等都是必不可少的一件事。而这些任务重往往都需要我们花费大量的时间和精力&#xff0c;而“AI导师写作”在这一方面无疑提供了高效和便捷。可毕业季的论文答辩也是每个学者…

TCP/IP协议族中的TCP(二):解析其关键特性与机制

⭐小白苦学IT的博客主页⭐ ⭐初学者必看&#xff1a;Linux操作系统入门⭐ ⭐代码仓库&#xff1a;Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统 滑动窗口 在前面我们讨论了确认应答策略, 对每一个发送的数据段, 都要给一个ACK确认应答. 收到ACK后再发送下一个数据段.这样…

VulnHub靶机 DC-9 靶机 详细渗透过程

VulnHub靶机 DC-9 打靶实战 详细渗透过程 目录 VulnHub靶机 DC-9 打靶实战 详细渗透过程一、将靶机配置导入到虚拟机当中二、渗透测试主机发现端口扫描Web渗透SQL注入登入后台文件包含SSH爆破提权 一、将靶机配置导入到虚拟机当中 靶机地址&#xff1a; https://www.vulnhub.…

JSP在页面用<%=调用声明函数时出现HTTP 500错误

JSP在页面用<%调用声明函数时出现HTTP 500错误 错误描述&#xff1a; Eclipse在编写JSP页面时&#xff0c;在其中采用<%&#xff01;%>方式声明了函数&#xff0c;然后在页面中用<%函数名%>方式调用时&#xff0c;出现HTTP状态500错误&#xff0c;提示为&#…

C语言-结构体尺寸

CPU字长 字长的概念指的是处理器在一条指令中的数据处理能力&#xff0c;当然这个能力还需要搭配操作系统的设定&#xff0c;比如常见的32位系统、64位系统&#xff0c;指的是在此系统环境下&#xff0c;处理器一次存储处理的数据可以达32位或64位。 地址对齐 当计算机系统的…

智能酒精壁炉与酒店会客厅的氛围搭配

智能酒精壁炉在酒店会客厅的氛围搭配可以创造出舒适、温馨和现代的环境。以下是智能酒精壁炉与酒店会客厅氛围搭配的优势和建议&#xff1a; 提升装饰效果&#xff1a; 安装智能酒精壁炉可以显著提升会客厅的装饰效果。壁炉作为焦点装饰&#xff0c;增添了现代感和奢华感&…

STM32的端口引脚的复用功能及重映射功能解析

目录 STM32的端口引脚的复用功能及重映射功能解析 复用功能 复用功能的初始化 重映射功能 重映射功能的初始化 复用功能和重映射的区别 部分重映射与完全重映射 补充 STM32的端口引脚的复用功能及重映射功能解析 复用功能 首先、我们可以这样去理解stm32引脚的复用功能…

车道分割YOLOV8-SEG

车道分割YOLOV8-SEG&#xff0c;训练得到PT模型&#xff0c;然后转换成ONNX&#xff0c;OPENCV的DNN调用&#xff0c;支持C,PYTHON,ANDROID开发 车道分割YOLOV8-SEG

【C++ | 复合类型】结构体、共用体、枚举、引用

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

AndroidStudio中虚拟机(AVD)无法启动,出现unable to locate adb错误

1.检查Android SDK Platform-Tools是否安装(个人是通过这个方法解决的) 首先通过File-Project Structure-Project SDK检查SDK有没有被选中 步骤&#xff1a;打开file -> settings &#xff0c;搜索SDK 之后点击"-",在点击Apply进行安装 2.可能是驱动的问题 电脑…

Web前端开发 小实训(二) 简易计算器

实训目的 学生能够使用函数完成简易计算器编写 操作步骤 1、请将加减乘除四个方法生成为以下函数&#xff0c;且有返回值 中文英语加法add减法subtract乘法multi除法division次幂pow()平方根sqrt() 提示&#xff1a; 除法中的除数不能为0&#xff01; 参考代码&#xff1…

OpenHarmony实战开发-动画概述

UI&#xff08;用户界面&#xff09;中包含开发者与设备进行交互时所看到的各种组件&#xff08;如时间、壁纸等&#xff09;。属性作为接口&#xff0c;用于控制组件的行为。例如&#xff0c;开发者可通过位置属性调整组件在屏幕上的位置。 属性值的变化&#xff0c;通常会引…

python作业 切片逆转

题目&#xff1a; &#xff08;反转显示一个整数&#xff09;编写下面的函数&#xff0c;反向显示一个整数。 列如&#xff1a;reserse(3456)。编写一个测试程序&#xff0c;提示用户输入一个整数&#xff0c;然后显示它的反向数。 第一步定义一个函数&#xff1a; def rev…

Docker容器部署overleaf

overleaf在线版限制很多&#xff0c;好在开源&#xff0c;准备在本地Docker部署&#xff0c;网上翻了翻&#xff0c;似乎本地部署并非易事&#xff0c;我也尝试了一下&#xff0c;发现直接使用docker-compose拉官方最新镜像部署的确问题很多&#xff0c;不过最终还是完美解决。…

前端学习<四>JavaScript——54-原型链

常见概念 构造函数 构造函数-扩展 原型规则和示例 原型链 instanceof 构造函数 任何一个函数都可以被 new&#xff0c;new 了之后&#xff0c;就成了构造方法。 如下&#xff1a; function Foo(name, age) {this.name name;this.age age;//retrun this; //默认有这…

系统思考—高效激励和沟通艺术

前两天结束建工集团的下属公司《高效激励和沟通艺术》的课程&#xff0c;不仅讨论了一些实用的管理技巧&#xff0c;更多的是从系统思考的视角&#xff0c;探讨了“结构如何影响行为”。这种方法让我们认识到系统力量的重要性&#xff0c;并且通过理解这些力量&#xff0c;我们…