[Pro Git#3] 远程仓库 | ssh key | .gitignore配置
目录
1. 分布式版本控制系统的概念
2. 实际使用中的“中央服务器”
3. 远程仓库的理解
4. 新建远程仓库
5. 克隆远程仓库
6. 设置SSH Key
实验
一、多用户协作与公钥管理
二、克隆后的本地与远程分支对应
三、向远程仓库推送
四、拉取远程仓库更新
五、配置Git忽略特殊文件
六、验证.gitignore文件的效果
七、处理.gitignore规则中的例外情况
八、给命令配置别名
九、注意事项
1. 分布式版本控制系统的概念
- 本地操作:所有操作(工作区、暂存区、版本库等)都是在本地完成,即你的笔记本或计算机上。Git作为一个分布式版本控制系统,意味着每个用户的电脑上都有一个完整的版本库副本。
- 协作机制:多用户协作时,各成员可以在自己的电脑上修改文件,并通过推送和拉取操作与其他成员交换更改。这使得即使没有互联网连接也可以继续工作,因为版本库就在本地。
- 安全性:由于每个参与者的电脑里都有完整的版本库,所以即使某台电脑出现问题,其他任何一台都可以复制整个项目的历史记录。
2. 实际使用中的“中央服务器”
- 在实践中,为了方便团队成员之间的交流,通常会设立一台充当“中央服务器”的电脑。但这台服务器仅用于促进大家的修改交换,而非必要的工作依赖。
3. 远程仓库的理解
- 分布方式:从一台原始机器克隆出多个副本到不同的机器上。每台机器上的版本库都是平等的,无主次之分。
- 实际应用:一般会选择一台稳定的服务器作为远程仓库,供团队成员克隆、推送和拉取代码。例如,GitHub提供免费的Git仓库托管服务,而国内则常用码云。
4. 新建远程仓库
- 创建过程:登录托管平台,填写基本信息创建远程仓库。选择仓库是否公开,并初始化默认分支(通常是
master
)。
以 github 为例
5. 克隆远程仓库
- 使用
git clone
命令加上远程仓库链接来下载仓库到本地。可以采用SSH协议或HTTPS协议进行传输。SSH更安全但需要配置公钥;HTTPS更简单直接但每次推送需输入密码。
6. 设置SSH Key
- 如果选择SSH协议,需先生成SSH密钥对并添加到远程仓库的服务端。步骤包括检查是否存在已有密钥、生成新密钥、将公钥添加到远程仓库设置中。
第一步:
第二步:
顺利的话,可以在⽤⼾主⽬录⾥找到 .ssh ⽬录,⾥⾯有 id_rsa 和 id_rsa.pub 两个⽂件,这两 个就是SSH Key的秘钥对, id_rsa 是私钥,不能泄露出去, id_rsa.pub 是公钥,可以放⼼地告 诉任何⼈。
ssh clone
test 仓库里面没有东西,所以报了一个空仓的 warning
- 注意:SSH协议每次推送是不用输入密码的,但如果是HTTPS协议,每次推送都必须输入密码
实验
一、多用户协作与公钥管理
- 成功协作:如果有多个人员协作开发,GitHub/Gitee允许添加多个公钥。只需将每个人的电脑上的Key都添加到GitHub/Gitee,这样就可以在每台电脑上往GitHub/Gitee上提交推送了。
二、克隆后的本地与远程分支对应
- 自动对应:
-
- 当我们从远程仓库克隆后,实际上Git会自动把本地的
master
分支和远程的master
分支对应起来。 - 远程仓库的默认名称是
origin
。
- 当我们从远程仓库克隆后,实际上Git会自动把本地的
- 查看远程库信息:
三、向远程仓库推送
- 前提:在本地仓库配置了和远端仓库一样的用户名和邮箱
- 将本地仓库的内容推送至远端仓库:
git push
- 详细命令格式:
git push <远程主机名> <本地分支名>:<远程分支名>
- 如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
查看:
四、拉取远程仓库更新
- 如果远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,需要拉取下远端代码,并合并到本地
- 从远程获取代码并合并本地的版本:git pull
- 详细命令格式:git pull <远程主机名> <远程分支名>:<本地分支名>
- 如果远程分支名与本地分支名相同,则可以省略冒号:git pull <远程主机名> <远程分支名>
五、配置Git忽略特殊文件
- 创建
.gitignore
文件:
-
- 在工作区根目录下创建一个特殊的
.gitignore
文件,并列出不想或不应该提交到远端的文件模式。示例内容:
- 在工作区根目录下创建一个特殊的
# My configurations:
*.ini
*.so
2.提交.gitignore
文件
gitee默认的是master,这里敲错了,github主分支用main
六、验证.gitignore
文件的效果
- 使用
git status
检查是否有效忽略了指定文件。
测试:
七、处理.gitignore
规则中的例外情况
- 可以通过添加例外规则来确保某些特定文件不会被忽略,例如:
# 排除所有.开头的隐藏文件:
.*
# 不排除.gitignore
!.gitignore
sum:
如果已经忽略了某个类型的文件,但是又想追踪管理某个特定的该类型文件,该怎么办?
- 方法一:使用
git add -f file_name
强制添加(推荐) - 方法二:在
.gitignore
中添加配置!file_name
即可让Git不忽略该文件
如果觉得
.gitignore
有问题,想知道哪个规则写错了,该怎么办?
- 可以使用
git check-ignore -v file_name
来检查相关配置
八、给命令配置别名
- 简化命令:
-
- 使用
git config --global alias.<alias-name> <command>
为常用命令设置别名。
- 使用
- 示例:
$ git config --global alias.st status
$ git config --global alias.last 'log -1'
九、注意事项
- 配置一致性:提交时要注意,如果之前设置过全局的name和e-mail,这两项配置需要和gitee上配置的用户名和邮箱一致,否则会出错。
- 适应Git命令:目前所有的命令建议自己手动完成,尽快适应Git的操作,建议在熟悉基本命令后再考虑使用命令别名简化工作流程。
相关文章:

[Pro Git#3] 远程仓库 | ssh key | .gitignore配置
目录 1. 分布式版本控制系统的概念 2. 实际使用中的“中央服务器” 3. 远程仓库的理解 4. 新建远程仓库 5. 克隆远程仓库 6. 设置SSH Key 实验 一、多用户协作与公钥管理 二、克隆后的本地与远程分支对应 三、向远程仓库推送 四、拉取远程仓库更新 五、配置Git忽略…...

Freertos任务切换
一、操作系统进行任务切换的时机: 采用信号量实现任务的互斥: 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合: ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…...
go开发中interface和方法接收器的使用
Go 语言中的接口和方法接收器学习 Go 中的 interface 就像是一个神奇的魔法杖,能让你轻松地将不同的类型拉到同一个阵营里。与其他语言的接口不同,Go 的接口无需显式声明“我实现了你”,只要你满足了接口规定的方法,Go 就会自动认…...

vue3-tp8-Element:对话框实现
效果 参考框架 Dialog 对话框 | Element Plus 具体实现 一、建立view页面 /src/views/TestView.vue 二、将路径写入路由 /src/router/index.js import { createRouter, createWebHistory } from vue-router import HomeView from ../views/HomeView.vueconst router create…...

高中数学:随机变量-正态分布
文章目录 一、连续性随机变量二、大致图像三、正态分布图像及解析式图像特点均值与方差公式正态分布各区域概率 一、连续性随机变量 二、大致图像 三、正态分布图像及解析式 图像特点 均值与方差公式 正态分布各区域概率...

游戏引擎学习第47天
仓库: https://gitee.com/mrxiao_com/2d_game 昨天我们花了一点时间来修复一个问题,但基本上是在修复这个问题的过程中,我们决定添加一个功能,那就是在屏幕上控制多个实体。所以如果我有一个手柄,我可以添加另一个角色࿰…...

Git 仓库托管教程
git远程仓库 常用的远程仓库-->托管服务:github、码云、gitlab等 github需要魔法上网,速度较慢因为在国外且仅仅支持Git,如果不是Git项目是不支持的;码云--gitee国内的代码托管平台,服务器在国内速度快一些&#…...

基于51单片机的简易时钟/定时器闹钟proteus仿真
地址: https://pan.baidu.com/s/1uez4cwZuXpchmihmRqnLEg 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…...
Jackson @JsonProperty 注解
1. 概述 Jackson 是一个流行的Java库,用于将Java对象转换为JSON格式以及从JSON反序列化回Java对象。一种常见的需求是在序列化为JSON或从JSON反序列化时自定义字段的命名。Jackson 的 JsonProperty 注解正好满足了这一需求。 JsonProperty 注解概览 JsonProperty…...
【Excel学习记录】02-单元格格式设置
1.单元格格式工具美化表格 单元格格式位置 选中单元格,右键→设置单元格格式 合并居中 跨越合并 字体类型、大小、颜色、填充底纹、边框 斜线 软回车:alt enter 格式刷 2.单元格数字格式 格式不影响数值,只是展示形式 日期本质也是数…...

支持自定义离线地图地理区域,查询组件及数据源功能增强,DataEase开源BI工具v2.10.3 LTS发布
2024年12月9日,人人可用的开源BI工具DataEase正式发布v2.10.3 LTS版本。 这一版本的功能变动包括:数据源方面,API数据源和Excel数据源支持对字段类型和长度进行设置;图表方面,离线类地图支持自定义地理区域设置&#…...
LF CRLF
这个提示的含义是:Git 检测到你当前的 file3.txt 文件中使用了 LF(换行符,Line Feed,\n) 作为换行符,但在你系统的 Git 配置中,指定要将其转换为 CRLF(回车换行,Carriage…...

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程
文章目录 前言前置条件进制什么是十进制、二进制二进制有什么用?为什么计算机用二进制而不用十进制?二进制转十进制十进制转二进制二进制运算 计算机中的数据存储单位什么是编程?什么是代码?什么是编程语言?常见的编程…...

怎样提升企业网络的性能?
企业网络的稳定性和高效性直接影响员工的工作效率。以下从多维度分析了一些有效策略,帮助公司提升网络性能,营造更高效的办公环境。 1. 升级网络设备 采用性能更高的网络硬件是优化网络体验的重要基础。选择支持高吞吐量、低延迟的设备(如企业…...

1. 机器学习基本知识(2)——机器学习分类
1.4 机器学习分类 1.4.1 训练监督 1. 监督学习:已对训练数据完成标记 分类:根据数据及其分类信息来进行训练,使模型能够对新的数据进行分类 回归:给出一组特征值来预测目标数值 2. 无监督学习:没有对训练数据进行任…...
四叉树算法在游戏碰撞检测中的应用
简介 在游戏开发中,碰撞检测是一个非常重要但计算成本较高的环节。如果采用简单的暴力检测方法,需要对场景中的每个物体与其他所有物体进行碰撞检测,时间复杂度为O(n)。四叉树(Quadtree)算法通过空间划分的方式,可以显著降低碰撞…...

IDEA 打包普通JAVA项目为jar包
需求:普通java项目(有添加依赖的jar包),没有用maven管理依赖和打包,要打成jar包,包可以用“java -jar 包名” 启动程序。 讲如何打包前,先记录下普通项目的目录结构和怎么添加依赖包 1.目录结…...
Docker Compose 多应用部署 一键部署
介绍 Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。 如:springbootmysqlnginx 如果一个个去部署他会非常的麻烦,这时候可以选择Docker …...

软件架构设计——通用表单UI—未来之窗行业应用跨平台架构
.东方仙盟_小世界 {margin-top: 2%;padding: 0 3%;background: #fff; } .东方仙盟_小世界 li span {width: 55px;padding-left: 0px; }.东方仙盟_小世界 li span {display: block;position: absolute;left: 0px;padding-left: 10px;width: 55px;font-size: 16px;background-siz…...

人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM
上一篇:《人工智能大语言模型起源篇(一),从哪里开始》 (5)Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》,https://arxiv.org/abs/1801.06…...
vue中ref的详解以及react的ref对比
文章目录 1. ref是什么2. ref的使用3. ref的特性4. 使用场景5. 注意事项6. 与 React 的对比7. 动态 ref8. 函数式组件中的 ref9. 组合式 API 中的 ref10. 总结 1. ref是什么 ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。可以通过实例对象…...
c语言超详细知识点总结 1500行手写源码 持续更新中ing 从25年5月到6月5日
想象一下,我们身处的数字世界,如同一座座宏伟的建筑。操作系统、编译器、数据库、嵌入式设备乃至绚丽的游戏引擎,它们都是这座大厦的重要组成部分。而C语言,正是构建这一切的坚固基石。自丹尼斯里奇于贝尔实验室孕育出这颗编程界的…...

SpringBoot十二、SpringBoot系列web篇之过滤器Filte详解
一、前言 JavaWeb三大组件Servlet、Filter、Listener,其中之一便是过滤器Filter。 其实,Filter我们平常用的不多,一般多为项目初期搭建web架构的时候使用,后面用的就少了,在日常业务开发中不太可能碰到需要手写Filte…...
使用 Ansible 在 Windows 服务器上安装 SSL 证书系列之二
今天带大家实战一下如何通过ansible在windows 服务器上给iis web site安装证书。 前提条件: 准备一张pfx证书,可以通过openssl工具来生成,具体的步骤请参考帮助文档。一台安装了iis 的windows 服务器 准备inventory文件 [windows] solarwinds ansible_host=20.47.126.72 a…...

【11408学习记录】考研写作双核引擎:感谢信+建议信复合结构高分模板(附16年真题精讲)
感谢信建议信 英语写作2016年考研英语(二)真题小作文题目分析写作思路第一段第二段锦囊妙句9:锦囊妙句12:锦囊妙句13:锦囊妙句18: 第三段 妙句成文 每日一句词汇第一步:找谓语第二步:…...

CoordConv: CNN坐标感知特征适应
传统卷积 vs CoordConv 详细对比 传统卷积对空间位置不敏感,CoordConv通过显式添加坐标信息解决这个问题在特征图中嵌入(x, y)坐标和可选的径向距离r使模型能够感知空间位置关系 1. 传统卷积的"空间位置不敏感"问题 传统卷积的特点: 输入: …...

新成果:GaN基VCSEL动态物理模型开发
作为高速数据传输与光电信号处理的核心器件,垂直腔面发射激光器(VCSEL)在高速光通信、激光雷达等领域应用广泛,其动态特性直接关联器件调制速率及稳定性等关键参数。近期,天津赛米卡尔科技有限公司技术团队开发了GaN基…...

STM标准库-TIM旋转编码器
文章目录 一、编码器接口1.1简介1.2正交编码器1.3编码器接口基本结构**1. 模块与 STM32 配置的映射关系****2. 设计实现步骤(核心流程)****① 硬件规划****② 时钟使能****③ GPIO 配置(对应架构图 “GPIO” 模块)****④ 时基单元…...
Vue---vue使用AOS(滚动动画)库
AOS介绍 aos.js是一个轻量级的动画库插件,可以简单的实现页面滚动触发动画效果,可以让我们网页看起来更加生动(高大上) 官网演示地址:aos.js 安装 YARN, NPM, BOWER安装 yarn add aos npm install aos --save bower install aos --save CDN引入 <link href"https…...

PicSharp(图片压缩工具) v1.1.6
PicSharp 一个简单、高效、灵活的跨平台桌面图像压缩应用程序。软件基于Rust实现,高性能低资源,能快速扫描文件或目录,批处理图像。软件还具备组合压缩策略,TinyPNG提供最佳压缩比,但需要互联网连接,对大量…...