[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…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
