Git介绍以及SSH配置

目录

1. Git介绍

1.1 Git的基本原理

1.2 Git的主要功能

1.3 Git的优点

1.4 Git的缺点

2. Git安装

3. SSH配置


1. Git介绍

Git是一款功能强大的分布式版本控制系统,最初由Linux操作系统的开发者Linus Torvalds在2005年开发,用于管理Linux内核的源代码,现已成为广泛使用的版本控制工具之一。以下是对Git的详细介绍:

1.1 Git的基本原理

  • 分布式版本控制:Git将整个代码库复制到每个开发者的本地计算机上,每个开发者都有自己的完整副本。这意味着开发者可以在没有网络连接的情况下继续工作,并且可以在不同的分支上进行独立开发。
  • 快照式存储:Git保存的是文件提交时的快照,而不是差异内容。这样可以更全面地跟踪文件历史和版本变化。
  • SHA-1算法保证完整性:Git使用SHA-1加密算法对文件数据进行校验,确保数据的完整性和一致性。

1.2 Git的主要功能

  • 克隆远程仓库:从服务器克隆版本数据库(包括代码和版本信息)到本地。
  • 提交代码:在自己的分支上创建新代码或修改现有代码,并提交到本地仓库。
  • 合并分支:将不同的分支合并到一个共同的分支上,例如将功能分支合并到主分支。
  • 拉取远程代码:从远程仓库获取最新代码,并与本地代码合并。
  • 解决代码冲突:当两个分支的代码同时修改了同一部分,Git会自动检测冲突,需要开发者手动解决。
  • 查看提交历史:查看代码提交的历史记录,包括每次提交的作者、日期和提交信息。
  • 标签管理:为特定的提交创建标签,便于跟踪重要版本。

1.3 Git的优点

  • 分布式:提高了开发的灵活性和效率,开发者可以在离线状态下进行操作。
  • 强大的分支管理:可以轻松地创建、合并和删除分支,使得多人协作开发变得更加方便。
  • 快速高效:采用快照方式进行版本控制,文件只需通过计算hash值来进行唯一标识,因此在提交、切换分支等操作上非常快速。
  • 本地保存完整历史记录:可以随时查看代码的变更历史和版本演进,不受网络连接的限制。
  • 安全可靠:采用了SHA-1算法对每个文件进行hash计算,从而确保文件的完整性。并且支持对代码提交进行签名,以确保代码的来源可信。
  • 强大的协作功能:提供了一系列强大的协作功能,例如代码的合并、冲突解决、代码审查等。

1.4 Git的缺点

  • 学习曲线陡峭:Git相对于其他版本控制系统来说,学习曲线较陡峭,需要一定的时间和精力去掌握。
  • 需要命令行操作:Git的使用大部分情况下都倾向于使用命令行,对于不熟悉命令行操作的用户来说可能会感到不便。
  • 分布式架构导致仓库庞大:每个开发者都拥有完整的代码仓库的副本,当仓库较大时,每次克隆或拉取代码都需要较长的时间和大量的磁盘空间。
  • 文件冲突解决复杂:需要手动合并代码,对于不熟悉解决冲突的开发者来说可能会产生困惑。
  • 无法跟踪空的文件夹:只能跟踪具有文件的文件夹,无法直接跟踪空的文件夹。
  • 不适用于大型二进制文件:对于大型的二进制文件(如图像、音频、视频)的版本控制效率较低。
  • 不适用于大规模团队协作:当多个开发者同时对同一分支进行操作时,可能会导致冲突和性能下降。

2. Git安装

在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 'git' 命令即可。

$ git --version

如果没有安装过命令行开发者工具,将会提示你安装。

如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 macOS Git 安装程序可以在 Git 官方网站下载,网址为 Redirecting…。

3. SSH配置

步骤一:先确认Git是否已经配置了ssh,存在id_rsa和id_rsa.pub说明已经配置过ssh。

ls -al ~/.ssh

步骤二:如果Git还没配置ssh,那么按照接下来的配置去设置。

#配置用户名
git config --global user.name "userName"

步骤三:配置用户名关联的邮箱

git config --global user.email "userEmail"

步骤四:继续在命令行敲入一下命令,生成公钥和私钥。

#输入这个命令之后连续敲击三次 回车键
ssh-keygen -t rsa -C "userEmail"

步骤五:查看生成的公钥,并把公钥复制到github上。

cat ~/.ssh/id_rsa.pub

公钥复制到github上(用户头像 -> setting -> SSH and GPG keys)

步骤六:找一个github项目clone到本地。

git clone git@github.com:xxx/xxxx.git

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

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

相关文章

PH热榜 | 2024-11-09

DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 在线预览 1. Shootmail 标语:像Notion一样,可以创建漂亮邮件模板和邮件内容的工具。 介绍:想象一下…

嵌入式学习第21天Linux基础

目录 第1章 Linux 系统介绍 1.1 Unix 操作系统(了解) 1.2 Linux 操作系统(了解) 1.3 Linux 操作系统的主要特性(重点) 1.4 Linux 与 Unix 的区别与联系 1.5 GUN 与 GPL(了解) …

【小程序安全】小程序反编译

❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 0x01 前期准备 知识点准备-小程序结构 1.主体结构 小程序包含一个描述整体程序的 app 和多个描述各自页…

C++ : STL容器(适配器)之stack、queue剖析

STL容器适配器之stack、queue剖析 一、stack、queue的接口(一)stack 接口说明(二)queue 接口说明 二、stack、queue的模拟实现(一)stack、queue是容器适配器stack、queue底层默认容器--deque1、deque概念及…

Kubernetes的基本构建块和最小可调度单元pod-0

文章目录 一,什么是pod1.1pod在k8s中使用方法(1)使用方法一(2)使用方法二 1.2pod中容器的进程1.3pod的网络隔离管理(1)pause容器的作用 1.4 Pod分类:(1)自主式…

【CUDA】认识CUDA

目录 一、CUDA编程 二、第一个CUDA程序 三、CUDA关键字 四、device管理 4.1 初始化 4.2 Runtime API查询GPU信息 4.3 决定最佳GPU CUDA C 编程指南CUDA C在线文档:CUDA C 编程指南 CUDA是并行计算的平台和类C编程模型,能很容易的实现并行算法。只…

知识中台如何在精简供应链管理中发挥作用?

您如何与供应商沟通并分享您的最佳实践?您如何确保供应商了解您的基准?如果您正在为这些问题烦恼,请不要担心,本文章将为您提供宝贵的见解。 构建具备弹性的供应链模型,其关键在于知识中台的数据质量。若缺乏数据支撑…

Python 在PDF中绘制形状(线条、矩形、椭圆形等)

在PDF中绘制图形可以增强文档的视觉效果。通过添加不同类型的形状,如实线、虚线、矩形、圆形等,可以使文档更加生动有趣,提高读者的阅读兴趣。这对于制作报告、演示文稿或是教材特别有用。本文将通过以下几个示例介绍如何使用Python 在PDF中绘…

Gitlab-执行器为Kubetnetes时的注意事项,解决DNS解析问题

一、Gitlab-Runner 这里对于Runner的理解非常重要。 具体执行ci流水线的叫执行器。执行器可以部署是shell、docker、k8s的pod.执行完任务则生命周期结束。 管理执行器的叫Gitlab-Runner。Runner则是与Gitlab Server的Ci agent.(可以简单这么理解) 二、执行器为Kubetnetes时,DN…

大数据新视界 -- 大数据大厂之 Impala 性能优化:新技术融合的无限可能(下)(12/30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

讨论一个mysql事务问题

最近在阅读一篇关于隔离级别的文章,文章中提到了一种场景,我们下面来分析一下。 文章目录 1、实验环境2、两个实验的语句执行顺序3、关于start transaction和start transaction with consistent snapshot4、实验结果解释4.1、实验14.2、实验24.3、调整实…

json绘制热力图

首先需要一段热力信息的json,我放在头部了。 然后就是需要de-geo库了。 实现代码如下: import * as d3geo from d3-geoimport trafficJSON from ../assets/json/traffic.jsonlet geoFun;// 地理投影函数// let info {max: Number.MIN_SAFE_INTEGER,mi…

K8S之Prometheus 部署(二十)

部署方式:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus 源码目录:kubernetes/cluster/addons/prometheus 服务发现:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kube…

kafka中节点如何服役和退役

服役新节点 1)新节点准备 (1)关闭 bigdata03,进行一个快照,并右键执行克隆操作。 (2)开启 bigdata04,并修改 IP 地址。 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改完记…

【Three.js基础学习】21.Realistic rendering

前言 课程回顾 渲染器 1.色调映射 值意在将高动态范围](HDR)值转换为低动态范围(LDR) Three.is中的色调映射实际上会伪造将LDR转换为HDR的过程,即使颜色不是HDR, 结果会产生非常逼真的渲染效果 THREE .NoToneMapping (default) 无色调映射 THREE.Linear…

ORB_SLAM3安装

ORB_SLAM3安装 一.前期准备1.1ubuntu查看当前版本的命令1.2 根据ubuntu版本,更新下载软件源1.3 先下载git1.4 vim语法高亮1.5 常见的linux命令 二.ORB-SLAM3下载2.1 ORB_SLAM3源码下载2.2 安装依赖库2.2.1 依赖库2.2.2 安装pangolin2.2.3 安装opencv2.2.4 Eigen3安装…

无需云端!国产开源大语言模型llama.cpp本地实战

作者:高瑞冬 注: 文章是2023年底写的。代码和运行方式虽有些旧,但基本原理一样。现在出来ollama,vllm等工具框架用来本地部署大模型,顺便更新一下。 [TOC](最后有彩蛋) 背景 上海人工智能实验室与商汤科技…

横向思维导图前端样式

追溯记录图路上 代码如下 index.vue <template><div style"margin-left: 5%;margin-top: 6%"> <el-form style"margin-top: -5%; " :inline"true"><el-form-item label"药品名称"><el-select v-model&qu…

清华大学提出Mini-Omni2:开源多模态模型,功能与GPT-4o媲美!

&#x1f310; 在人工智能领域&#xff0c;多模态模型的发展正如火如荼。今天&#xff0c;我们要介绍的是由清华大学提出的Mini-Omni2&#xff0c;这是一个开源的多模态语言模型&#xff0c;它在功能上与GPT-4o相媲美&#xff0c;能够理解和生成视觉、听觉和文本内容&#xff0…

HarmonyOS入门 : 获取网络数据,并渲染到界面上

1. 环境搭建 开发HarmonyOS需要安装DevEco Studio&#xff0c;下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手&#xff0c;比如获取网络数据&#xff0c;并将其渲染到界面上。 本文就是基于…