Git | 远程操作

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]`;

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

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

相关文章

Git--分布式版本控制系统

目录 一、理解分布式版本控制系统二、远程仓库三、克隆远程仓库四、向远程仓库推送五、拉取远程仓库六、配置Git七、给命令配置别名八、创建标签九、操作标签 一、理解分布式版本控制系统 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&a…

24深圳杯AC题完整思路+可执行代码+参考论文!!!!

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的&#xff0c;大家可以参考我往期的资料&#xff0c;所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意&#xff1a;&#xff08;建议先下单占坑&#xff0c;因为随着后续我们更新资料数…

three.js 学习笔记 | 光线投射技术 - 包围盒(碰撞检测)

文章目录 three.js 学习笔记光线投射技术实现3D场景交互事件 THREE.Raycaster坐标系的转换案例&#xff1a;选中的模型变为红色 包围盒Box3 - 碰撞检测AABB包围盒辅助器Box3Helper案例1&#xff1a;创建AABB包围盒/包围球computeBoundingBox与boundingBox 搭配使用&#xff0c;…

【数据结构】二叉树(带图详解)

文章目录 1.树的概念1.2 树的结构孩子表示法孩子兄弟表示法 1.3 相关概念 2.二叉树的概念及结构2.1 二叉树的概念2.2 数据结构中的二叉树-五种形态2.3 特殊的二叉树2.4 二叉树的存储结构顺序存储链式存储 2.5 二叉树的性质 3. 堆3.1 堆的定义3.2 堆的实现堆的结构堆的插入向上调…

springcloud按版本发布微服务达到不停机更新的效果

本文基于以下环境完成 spring-boot 2.3.2.RELEASEspring-cloud Hoxton.SR9spring-cloud-alibaba 2.2.6.RELEASEspring-cloud-starter-gateway 2.2.6.RELEASEspring-cloud-starter-loadbalancer 2.2.6.RELEASEnacos 2.0.3 一、思路 实现思路&#xff1a; 前端项目在请求后端接…

SVN--基本原理与使用(超详细)

目录 一、SVN概述二、SVN服务端软件安装三、SVN服务端配置四、SVN客户端软件安装与使用五、SVN三大指令六、SVN图标集与忽略功能6.1 图标集6.2 忽略功能 七、SVN版本回退八、SVN版本冲突九、SVN配置多仓库与权限控制9.1 配置多仓库9.2 权限控制 十、服务配置与管理十一、模拟真…

Java | Leetcode Java题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; class Solution {public int totalNQueens(int n) {Set<Integer> columns new HashSet<Integer>();Set<Integer> diagonals1 new HashSet<Integer>();Set<Integer> diagonals2 new HashSet<Integer>…

手写文本识别系统的最佳实践

手写文本识别系统的最佳实践 摘要IntroductionRelated WorkProposed HTR SystemConvolutional Backbone:Flattening Operation:Recurrent Head:CTC shortcut: Best Practices for a Handwritten Text Recognition System 摘要 手写文本识别在近年来随着深度学习及其应用的兴起…

文件夹惊变文件?揭秘原因及解决方案

在日常工作和生活中&#xff0c;电脑已经成为我们不可或缺的助手。然而&#xff0c;有时我们会遇到一些令人困惑的问题&#xff0c;比如&#xff0c;文件夹突然变成了文件。这听起来可能有些匪夷所思&#xff0c;但它确实会发生&#xff0c;而且给用户带来了不小的麻烦。当熟悉…

java-spring-mvc(知识点讲解-第一天)-欢迎各位大佬提建议

目录 &#x1f383;MVC定义 &#x1f9e8;创建工程 &#x1f3a8;SpringMVC处理请求 请求分类及处理方式 静态请求 处理静态前端页面方式 动态请求 处理动态前端页面方式 ⚙小试牛刀 &#x1f3c6;常见问题 &#x1f4cc;HTTP协议 超文本传输协议 请求 &#x1f383;MVC…

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

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

在线培训考试系统在线考试功能注意事项

在线培训考试系统在线考试功能注意事项 考试前务必注意是否开启防切屏、摄像头监考等防作弊措施&#xff0c;系统一旦检测到触发了疑似作弊行为会立刻自动交卷&#xff0c;考试终止&#xff1b; 答题者准备好后&#xff0c;可点击“开始答题”按钮进入考试&#xff0c;注意考…

代码随想录第49天|121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 动态规划之 LeetCode&#xff1a;121.买卖股票的最佳时机1_哔哩哔哩_bilibili 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一…

#C++里的引用#

目录 引用概念 定义引用类型 引用特性 常引用 传引用传参 传引用做返回值 1.引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 比如&#xff1a…

【AI】一文介绍索引增强生成RAG的原理和结构

今天向大家介绍一下关于RAG的一些知识和经验。 这里说的RAG可以理解为目前针对企业知识库问答等AI应用场景的解决方案,这个场景就是利用自然语言大模型LLM与用户自有的文件进行对话的能力。 【RAG的优势】 首先,讲一讲RAG的优势特征。 如果把AI想象成一个待上岗的人类助手,…

1、Flink DataStreamAPI 概述(上)

一、DataStream API 1、概述 1&#xff09;Flink程序剖析 1.Flink程序组成 a&#xff09;Flink程序基本组成 获取一个执行环境&#xff08;execution environment&#xff09;&#xff1b;加载/创建初始数据&#xff1b;指定数据相关的转换&#xff1b;指定计算结果的存储…

模型 AIPL(认知、兴趣、购买、忠诚)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。品牌营销的量化与链路化。 1 AIPL模型的应用 1.1 耐克如何利用AIPL模型来推广其运动鞋和服装产品? 耐克利用AIPL模型来推广其运动鞋和服装产品&#xff0c;具体如下&#xff1a; 认知&#xff08;…

为什么总说抖店做不好?做抖店需要注意这些问题,是不是都占了?

大家好&#xff0c;我是电商花花。 今天给大家总结了4个新手不注意又常犯的几个原因&#xff0c;这些建议都是我们做店这些年的实操经验&#xff0c;可以帮助大家做店自查&#xff0c;有责改之&#xff0c;无责加冕。 1、抖店核心是选品而不是玩法 很多新手在刚开始做店抖音小…

8K+/月!学习就业一把梭,祝贺誉天数通陈同学收获心仪offer !

大家好&#xff0c;我是誉天数通的陈同学。 在武汉&#xff0c;网络运维圈的人应该都会听过誉天的名字。作为华为的授权培训合作伙伴&#xff0c;誉天不仅提供专业全面的工程师培训&#xff0c;还以其独特的环境和氛围吸引着无数有志于在网络领域发展的朋友。 一年前的我&#…

用坐标与碰撞检测效果

用pygame碰撞检测子弹 与 子弹 格子检查是否在墙内 结果差不了多少 输出的是碰撞点坐标 在计算角色与强的距离是 你用了几条射线 2024/4/26 13:20:48 在代码中&#xff0c;用于计算角色与墙之间距离的部分是通过投射多条射线来实现的。具体来说&#xff0c;在循环中&#xf…