当前位置: 首页 > news >正文

[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上提交推送了。
二、克隆后的本地与远程分支对应
  1. 自动对应
    • 当我们从远程仓库克隆后,实际上Git会自动把本地的master分支和远程的master分支对应起来。
    • 远程仓库的默认名称是origin
  1. 查看远程库信息

三、向远程仓库推送
  • 前提:在本地仓库配置了和远端仓库一样的用户名和邮箱
  • 将本地仓库的内容推送至远端仓库git push
  • 详细命令格式git push <远程主机名> <本地分支名>:<远程分支名>
  • 如果本地分支名与远程分支名相同,则可以省略冒号git push <远程主机名> <本地分支名>

查看:

四、拉取远程仓库更新
  • 如果远程仓库是要领先于本地仓库⼀个版本,为了使本地仓库保持最新的版本,需要拉取下远端代码,并合并到本地
  • 从远程获取代码并合并本地的版本:git pull
  • 详细命令格式:git pull <远程主机名> <远程分支名>:<本地分支名>
  • 如果远程分支名与本地分支名相同,则可以省略冒号:git pull <远程主机名> <远程分支名>

五、配置Git忽略特殊文件
  1. 创建.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来检查相关配置
八、给命令配置别名
  1. 简化命令
    • 使用git config --global alias.<alias-name> <command>为常用命令设置别名。
  1. 示例
$ 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任务切换

一、操作系统进行任务切换的时机&#xff1a; 采用信号量实现任务的互斥&#xff1a; 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合&#xff1a; ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…...

go开发中interface和方法接收器的使用

Go 语言中的接口和方法接收器学习 Go 中的 interface 就像是一个神奇的魔法杖&#xff0c;能让你轻松地将不同的类型拉到同一个阵营里。与其他语言的接口不同&#xff0c;Go 的接口无需显式声明“我实现了你”&#xff0c;只要你满足了接口规定的方法&#xff0c;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 昨天我们花了一点时间来修复一个问题&#xff0c;但基本上是在修复这个问题的过程中&#xff0c;我们决定添加一个功能&#xff0c;那就是在屏幕上控制多个实体。所以如果我有一个手柄&#xff0c;我可以添加另一个角色&#xff0…...

Git 仓库托管教程

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

基于51单片机的简易时钟/定时器闹钟proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1uez4cwZuXpchmihmRqnLEg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…...

Jackson @JsonProperty 注解

1. 概述 Jackson 是一个流行的Java库&#xff0c;用于将Java对象转换为JSON格式以及从JSON反序列化回Java对象。一种常见的需求是在序列化为JSON或从JSON反序列化时自定义字段的命名。Jackson 的 JsonProperty 注解正好满足了这一需求。 JsonProperty 注解概览 JsonProperty…...

【Excel学习记录】02-单元格格式设置

1.单元格格式工具美化表格 单元格格式位置 选中单元格&#xff0c;右键→设置单元格格式 合并居中 跨越合并 字体类型、大小、颜色、填充底纹、边框 斜线 软回车&#xff1a;alt enter 格式刷 2.单元格数字格式 格式不影响数值&#xff0c;只是展示形式 日期本质也是数…...

支持自定义离线地图地理区域,查询组件及数据源功能增强,DataEase开源BI工具v2.10.3 LTS发布

2024年12月9日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10.3 LTS版本。 这一版本的功能变动包括&#xff1a;数据源方面&#xff0c;API数据源和Excel数据源支持对字段类型和长度进行设置&#xff1b;图表方面&#xff0c;离线类地图支持自定义地理区域设置&#…...

LF CRLF

这个提示的含义是&#xff1a;Git 检测到你当前的 file3.txt 文件中使用了 LF&#xff08;换行符&#xff0c;Line Feed&#xff0c;\n&#xff09; 作为换行符&#xff0c;但在你系统的 Git 配置中&#xff0c;指定要将其转换为 CRLF&#xff08;回车换行&#xff0c;Carriage…...

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

文章目录 前言前置条件进制什么是十进制、二进制二进制有什么用&#xff1f;为什么计算机用二进制而不用十进制&#xff1f;二进制转十进制十进制转二进制二进制运算 计算机中的数据存储单位什么是编程&#xff1f;什么是代码&#xff1f;什么是编程语言&#xff1f;常见的编程…...

怎样提升企业网络的性能?

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

1. 机器学习基本知识(2)——机器学习分类

1.4 机器学习分类 1.4.1 训练监督 1. 监督学习&#xff1a;已对训练数据完成标记 分类&#xff1a;根据数据及其分类信息来进行训练&#xff0c;使模型能够对新的数据进行分类 回归&#xff1a;给出一组特征值来预测目标数值 2. 无监督学习&#xff1a;没有对训练数据进行任…...

四叉树算法在游戏碰撞检测中的应用

简介 在游戏开发中&#xff0c;碰撞检测是一个非常重要但计算成本较高的环节。如果采用简单的暴力检测方法&#xff0c;需要对场景中的每个物体与其他所有物体进行碰撞检测&#xff0c;时间复杂度为O(n)。四叉树(Quadtree)算法通过空间划分的方式&#xff0c;可以显著降低碰撞…...

IDEA 打包普通JAVA项目为jar包

需求&#xff1a;普通java项目&#xff08;有添加依赖的jar包&#xff09;&#xff0c;没有用maven管理依赖和打包&#xff0c;要打成jar包&#xff0c;包可以用“java -jar 包名” 启动程序。 讲如何打包前&#xff0c;先记录下普通项目的目录结构和怎么添加依赖包 1.目录结…...

Docker Compose 多应用部署 一键部署

介绍 Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器&#xff0c;帮助我们实现多个相互关联的Docker容器的快速部署。 如&#xff1a;springbootmysqlnginx 如果一个个去部署他会非常的麻烦&#xff0c;这时候可以选择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

上一篇&#xff1a;《人工智能大语言模型起源篇&#xff08;一&#xff09;&#xff0c;从哪里开始》 &#xff08;5&#xff09;Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》&#xff0c;https://arxiv.org/abs/1801.06…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

拟合问题处理

在机器学习中&#xff0c;核心任务通常围绕模型训练和性能提升展开&#xff0c;但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正&#xff1a; 一、机器学习的核心任务框架 机…...

职坐标物联网全栈开发全流程解析

物联网全栈开发涵盖从物理设备到上层应用的完整技术链路&#xff0c;其核心流程可归纳为四大模块&#xff1a;感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性&#xff0c;例如传感器选型需平衡精度与…...

GB/T 43887-2024 核级柔性石墨板材检测

核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标&#xff1a; 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...

Python爬虫(四):PyQuery 框架

PyQuery 框架详解与对比 BeautifulSoup 第一部分&#xff1a;PyQuery 框架介绍 1. PyQuery 是什么&#xff1f; PyQuery 是一个 Python 的 HTML/XML 解析库&#xff0c;它采用了 jQuery 的语法风格&#xff0c;让开发者能够用类似前端 jQuery 的方式处理文档解析。它的核心特…...