Git的原理和使用(四):理解分布式版本控制系统与远程仓库的相关配置

news2024/11/15 10:51:06

目录

远程操作

理解分布式版本控制系统

远程仓库

新建远程仓库

克隆远程仓库

向远程仓库推送

拉取远程仓库

配置Git

忽略特殊文件

为命令配置别名

标签管理

理解标签

创建标签

操作标签


远程操作

理解分布式版本控制系统

1、每个人的电脑都是一个完整的版本库,这样工作的时候就不需要联网了,因为版本库就在你自己的电脑上,既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比如说你在自己电脑上更改了文件A,你的同事也在他的电脑上更改了文件A,这时你俩之间只需要把各自的修改推送给对方,就可以看到对方的修改了

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

3、在实际使用分布式版本控制系统时,其实很少在两个人的电脑上推送版本库的修改,因为可能你俩不在同一局域网内,两台电脑互相访问不了,也可能今天你的同时病了,他的电脑根本没开机,因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅说同来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已,而且有了它就不怕本地出什么故障了(硬盘损害,上面的内容丢失之类的)

远程仓库

新建远程仓库

网址:Gitee - 基于 Git 的代码托管和研发协作平台

填写基本信息,创建成功: 

在新建库的.gitee中查看所选的两个文件的作用: 

  • Issue文件:发现本仓库问题的外来者与仓库成员交流的文件

  • Pull Request文件: 实际开发中开发分支dev不能直接和主分支master进行merge防止错误的开发内容影响master分支,该文件就是一个用于向管理员提交合并申请的申请单

远程仓库是有成员的

克隆远程仓库

指令:git clone + 远程仓库链接

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

  • HTTP方式:

注意事项:不能在本地仓库所在的目录下执行clone指令

 远程仓库的默认名字是origin,通过git remote指令查看,加上选项-v查看更详细内容

  • SSH方式:
  • 在用户主目录的隐藏文件中是否有.ssh目录,如果有查看是否有id_rsa和id_rsa.pub这两个文件,如果有则不用创建SSH Ket,否则需要用ssh-keygen -t  rsa -C “邮箱”指令进行创建

当我们从远程仓库克隆后,Git会自动把本地的master分支和远程的master分支建立链接

向远程仓库推送

情况:本地仓库内容领先于远程仓库

git config -l查看仓库配置,本地仓库的username和useremail要与gitee中的一致否则报错:

在本地仓库remote_gitcode中新增一个file.txt文件,并提交给当前分支:

用git push指令将本地仓库的master分支上新增的修改内容推送到远程仓库的master分支上:

  • git push <远程主机名> <本地分支名>:<远程分支名>
  • git push <远程主机名> <本地分支名>(本地分支名与远程分支名一致可省略冒号)

使用SSH方式推送时不用输入账号密码,使用HTTP方式时需要:

拉取远程仓库

情况:远程仓库内容领先于本地仓库

在远程仓库中直接对file.txt文件进行修改并提交:

Git提供了git pull命令该命令用于从远程获取代码并合并本地的版本:

  • git pull <远程主机名> <远程分支名>:<本地分支名>
  • git pull <远程主机名> <远程分支名>(远程分支是与当前分支合并,则冒号后部分可省略)

配置Git

忽略特殊文件

在日常开发中,我们有哪些文件不想或者不应该提交到远端仓库,比如保存了数据库密码的配置文件,那么该如何让Git知道呢?在Git工作区根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件了(.gitignore文件gitee在创建仓库时就可以为我们生成,不过需要我们主动勾选一下)

在工作区创建一个.gitignore文件也是可以的,例如要忽略.so和.ini结尾的所有文件:

此时提交状态里的待提交文件只有..gitignore文件没用a.so文件:

还可以强行添加被忽略的文件:

  • git add -f 文件名

但是一般不建议这样写,更推荐在.gitignore文件用"!文件名"的形式指定不忽略的文件:

有时候会忘了某个文件是否被忽略可以用下面的指令进行查找:

  • git check_ignore -v d.so

将这些文件提交至远程仓库,就可以发现远程仓库有了它们:

为命令配置别名

基本概念:有些Git命令太长,为此git支持对命令进行简化

简化指令:git config [选项] alias.别名 原指令名

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

标签管理

理解标签

基本概念: 标签tag是对某次commit的一个标识(项目发布某个版本时,对最后一次的commit起一个v1.0这样的标签),相较于难以记住的commit id,tag可以很好的解决这一问题,当我们需要回退到某个重要版本时,直接使用标签就能很快定位到

创建标签

默认为最新一次的提交打标签(git tag指令查看当前标签):

  • git tag 标签名

 打完标签后可以使用tree .git指令查看本地库的变化: 

查看v1.0就是最新一次提交的commit id:

git tag 标签名 commit_id指令可以指定对某次commit id打标签:

标签不是按时间顺序列出,而是按字母排序的,可以用git show 标签名查看标签的相关信息:

Git还提供可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

  • git tag -a 标签名 -m "文字描述"  提交id

操作标签

git tag -d 标签名指令删除标签:

创建的标签一般都只存储在本地,不会自动推送到远程,所以打错的标签可以在本地安全删除,若要推送某个标签到远程,使用git push origin 标签名指令:

查看远程仓库有一个新标签:

如果本地标签很多,可以用git push origin --tags指令一次性全部推送到远端:

删除远程仓库的标签,要先删除本地的,然后将本地的修改(删除)提交至远程:

  • git push origin : 

~over~

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

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

相关文章

JavaEE之网络初识(网络中的一些基本概念)详解

&#x1f63d;博主CSDN主页: 小源_&#x1f63d; &#x1f58b;️个人专栏: JavaEE &#x1f600;努力追逐大佬们的步伐~ 目录 1. 前言 2. 网络中的一些基本概念 2.1 IP地址 2.2 端口号 2.3 网络协议 2.4 协议分层 2.5 封装 2.6 分用 (封装的逆向过程) 2.7 客户端 vs …

hcia datacom课程学习(4):ICMP与ping命令

1.什么是ICMP ICMP是ip协议的一部分&#xff0c;常用的ping命令就是基于icmp协议的。 在防火墙策略中也能看到ICMP&#xff0c;如果将其禁用&#xff0c;那么其他主机就ping不通该主机了 2. ICMP数据报 2.1数据报构成 ICMP协议的报文包含在IP数据报的数据部分&#xff0c; …

用Unity3D实现简单的RPG游戏

文章目录 开发流程及关键要素说明**1. **环境设置与项目创建******2. **场景搭建******3. **角色控制******4. **用户输入处理******5. **敌人与战斗系统******6. **物品与装备系统******7. **任务与对话系统******8. **UI与菜单系统******9. **保存与加载系统******10. **测试…

动态内存管理(重要)

目录 1.为什么要有动态内存分配 2.malloc和free 2.1 malloc 2.2 free 3. calloc和realloc 3.1 calloc 3.2 realloc 4.常见的动态内存的错误 4.1对NULL指针的解引用操作 4.2对动态开辟空间的越界访问 4.3对非动态开辟内存使用free释放 4.4使用free释放一块动态开辟内…

rtt的io设备框架面向对象学习-硬件定时器设备

目录 1.硬件定时器设备类对象图全貌2.stm32硬件定时器设备类及其构造函数3 硬件定时器设备基类及其构造函数4 设备基类及其构造函数5.总结6.内部调用流程7.应用程序使用流程 1.硬件定时器设备类对象图全貌 设备驱动层的硬件定时器类是实现类&#xff0c;是需要各个BSP实现的。其…

《数据结构学习笔记---第五篇》---链表OJ练习下

step1:思路分析 1.实现复制&#xff0c;且是两个独立的复制&#xff0c;我们必须要理清指针之间的逻辑&#xff0c;注意random的新指针要链接到复制体的后面。 2.我们先完成对于结点的复制&#xff0c;并将复制后的结点放在原节点的后面&#xff0c;并链接。 3.完成random结点…

Linux常用命令-文件操作

文章目录 ls基本用法常用选项组合选项示例注意事项 cd基本用法示例注意事项 pwd基本用法示例选项总结 cp基本用法常见选项示例注意事项 rm基本用法常见选项示例删除单个文件&#xff1a;交互式删除文件&#xff1a;强制删除文件&#xff1a;递归删除目录&#xff1a;交互式递归…

腾讯云优惠券、代金券、云服务器折扣券领取渠道汇总

目前&#xff0c;云计算市场竞争太激烈了&#xff0c;为了吸引用户上云&#xff0c;腾讯云经常推出各种优惠活动&#xff0c;其中就包括优惠券、代金券和云服务器折扣券等。本文将为大家汇总腾讯云优惠券、代金券及云服务器折扣券的领取渠道&#xff0c;帮助大家轻松获取优惠&a…

蓝桥杯java组 最少砝码

问题描述】 你有一架天平。现在你要设计一套砝码&#xff0c;使得利用这些砝码可以称出任意小于等于 N 的正整数重量。 那么这套砝码最少需要包含多少个砝码&#xff1f; 注意砝码可以放在天平两边。 【输入格式】 输入包含一个正整数 N。 【输出格式】 输出一个整数代表答案…

了解微信小程序开发流程

前言&#xff1a;本文只适合初学者了解大致开发流程&#xff0c;好让后续学习胸有成竹&#xff0c;有条不紊 1、开发准备 ① 在微信公众平台 (qq.com)完成微信小程序账号注册 ②下载安装微信小程序开发者工具 2、创建项目 新建 新建时需要的appid&#xff0c;在微信公众平…

【物联网项目】基于ESP8266的家庭灯光与火情智能监测系统——文末完整工程资料源码

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …

开源AI引擎:自然语言处理技术在人岗匹配中的应用

一、应用场景介绍 如何从海量的求职者中精准地匹配到合适的候选人&#xff0c;是每个人力资源部门都需要解决的问题。自然语言处理&#xff08;NLP&#xff09;技术的发展为人岗匹配提供了新的解决方案。通过信息抽取和文本分类技术&#xff0c;企业可以更高效地分析职位描述和…

【SpringBoot从入门到精通】03_SpringBoot自动配置原理

三、SpringBoot自动配置原理 我们通过编写SpringBoot HelloWorld程序&#xff0c;体会到了其强大与便捷&#xff0c;它的这些功能都是基于SpringBoot的依赖管理与自动配置。 3.1 核心特性 依赖管理 父项目做依赖管理 <!-- 当前项目的父项目&#xff1a;依赖管理 --> &…

JavaScript 常用方法(1):JS日期格式化函数、JS实现并列排序、JS实现数字每三位添加逗号、JS 实现根据日期和时间进行排序

1、JS日期格式化函数 JS日期格式化转换方法 /*** description 格式化时间* param fmt 格式 如&#xff1a;yyyy-MM-dd、yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日 W HH:mm:ss等* param {String} date 时间戳* returns {string|null}* 对 Date 的扩展&#xff0c;将 Date 转化为指…

LangChain教程 | langchain 文本拆分器 | Text Splitters全集

在阅读本文前&#xff0c;建议先看下langchain的基础&#xff0c;最主要的是先看下langchain 文档加载器使用教程有关的内容&#xff0c;会更容易把知识串联起来。 概述 一旦加载了文档&#xff0c;您通常会想要转换它们以更好地适应您的应用程序。最简单的例子是&#xff0c;您…

使用dlv配合goland调试在wsl中运行的go程序

参考文章&#xff1a;https://marksuper.xyz/2021/06/29/dlv-goland/ 首先安装一下dlv这个工具&#xff1a; git clone GitHub - go-delve/delve: Delve is a debugger for the Go programming language. cd delve go install github.com/go-delve/delve/cmd/dlv 我们直接开始配…

数据结构 之 栈与单调栈习题 力扣oj(附加思路版)

#include<stack> --栈的头文件 栈的特点 &#xff1a; 先进后出 &#xff0c; 后进先出 相关函数&#xff1a; top() 获取栈顶元素 ,返回栈顶元素的值 pop() 删除栈顶元素 ,没有返回值 push() 放入元素 ,没有返回值 empty() 为空返回 true 否则返回false size() 元素…

Java毕业设计-基于springboot开发的疫情防控期间外出务工人员信息管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能2.2用户功能2.3采集员功能2.4分析员功能 四、毕设内容和源代码获取总结 Java毕业设计-基…

文件上传漏洞-客户端检测

本文章仅供学习参考&#xff01;&#xff01;&#xff01; 靶场环境&#xff1a;upload-labs-master/pass-1 客户端检测 客户端检测一般都是在网页上写一段 javascript 脚本&#xff0c;校验上传文件 的后缀名&#xff0c;有白名单形式也有黑名单形式。 判断方式&#xff1…

Advisor 被重复代理问题排查

问题场景 项目中存在多个 AbstractAdvisorAutoProxyCreator 且其持有的 Advisor Bean 重复 问题复现 相关代码 ResponseBodyRequiresPermissions(PermissionConstant.****)GetMapping(value "/query****.json", name "")public List<***> query…