Git介绍及配置

news2024/11/29 1:29:16

目录

Git

GitHub

GitLab

Gitee

配置Git

安装git

初次运行 Git 前的配置

注册一个代码托管平台

用户信息

获取 Git 仓库

初始化仓库

克隆现有的仓库

https方式:

ssh方式:

上传本地项目至Git仓库

https方式

ssh-key方式

添加个人公钥​

相关概念

 1. 工作区(Working Directory)

2. 暂存区(Stage/Index)

3. Git 目录(Repository 或 .git 目录)


Git

Git 是一个开源的分布式版本控制系统(DVCS),用于高效地处理从小到大的所有项目。Git 由林纳斯·托瓦兹(Linus Torvalds)创建,最初是为了管理 Linux 内核的开发而设计。Git 允许开发者在本地进行代码的版本控制,包括提交、回滚、分支、合并等操作,而且支持多用户协作,通过网络进行代码的共享和同步。

GitHub

GitHub 是一个基于 Git 的开源代码托管平台,由 GitHub 公司开发和维护。GitHub 提供了强大的代码管理、协作和分发功能,支持代码仓库的创建、版本控制、问题跟踪、功能请求、合并请求(Pull Requests)、代码审查、项目管理等。GitHub 还拥有庞大的开发者社区,是开源项目的主要托管平台之一。GitHub 提供了免费和付费两种服务模式,付费服务提供更多的功能和资源。

GitLab

GitLab 是一个开源的代码托管平台,提供了与 GitHub 类似的功能,但它是完全开源的,并且可以部署在自己的服务器上。GitLab 允许企业或组织拥有自己的代码仓库管理平台,实现代码的自给自足和安全可控。GitLab 提供了代码托管、代码审查、CI/CD(持续集成/持续部署)、问题跟踪、项目管理等功能,并且支持多种编程语言和框架。GitLab 社区版和企业版都提供了丰富的功能,企业版还提供了额外的企业级支持和功能。

Gitee

Gitee 是中国的代码托管平台,类似于 GitHub 和 GitLab,但主要面向中国用户。Gitee 提供了代码托管、版本控制、项目管理、团队协作等功能,支持 Git 和 SVN 两种方式。Gitee 特别注重中文用户的使用体验,提供了丰富的中文文档和社区支持。对于在中国进行软件开发的企业和个人来说,Gitee 是一个很好的选择,因为它提供了更快的访问速度和更贴近国内用户需求的服务。

总结来说,Git 是一个分布式版本控制系统,而 GitHub、GitLab 和 Gitee 则是基于 Git 的代码托管平台,它们提供了代码管理、协作和分发等功能。这些工具和平台在软件开发过程中发挥着重要作用,帮助开发者更好地管理代码、协作开发和分享知识。

配置Git

linux上传代码至git的操作:

安装git

在linux系统里安装git客户端/服务端的软件

centos:

sudo yum install git-all -y

ubantu:

 sudo apt install git-all -y

初次运行 Git 前的配置

Git 自带一个 git config 的工具来帮助设置控制 Git 行为的配置变量。

这些变量存储在三个不同的位置:

1./etc/gitconfig 文件:

包含系统上每一个用户及他们仓库的通用配置。 如果在执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)

2.~/.gitconfig 或 ~/.config/git/config 文件:

只针对当前用户。 你可以传递 --global 选项让 Git 读写此文件,这会对你系统上 所有 的仓库生效。

3.当前使用仓库的 Git 目录中的 config 文件(即 .git/config):

针对该仓库。 你可以传递 --local 选项让 Git 强制读写此文件,虽然默认情况下用的就是它。 (当然,你需要进入某个 Git 仓库中才能让该选项生效。)

注册一个代码托管平台

1.这里以gitee为例:

2.设置你的gitee名称并绑定邮箱

3.创建一个仓库

用户信息

安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。

这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

git config --global user.name "yourName"
git config --global user.email yourEmail@example.com

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。

当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有              --global 选项的命令来配置。

获取 Git 仓库

初始化仓库

在已存在目录中初始化仓库

如果你有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,首先需要进入该项目目录中:

mkdir /gitee/

cd /gitee/

之后执行:

git init

执行这个命令后,Git 会在当前目录下创建一个名为 .git 的隐藏目录(如果当前目录中已经存在 .git 目录,命令会失败),这个目录包含了 Git 仓库的所有元数据,如配置信息、暂存区信息、历史记录等。

初始化 Git 仓库后,你就可以开始使用 Git 来管理你的项目了,比如添加文件到暂存区(git add)、提交修改到仓库(git commit)、查看项目历史(git log)等。

记住,.git 目录是 Git 仓库的核心,它包含了所有 Git 需要跟踪的信息,因此不应该直接修改这个目录中的文件。

克隆现有的仓库

克隆仓库的命令是 git clone <url> 。可以用下面的命令:

https方式:

git clone https://gitee.com/xxx/linux-registry.git

ssh方式:

git clone git@gitee.com:xxx/linux-registry.git

这会在当前目录下创建一个名为 “linux-registry” 的目录,并在这个目录下初始化一个 .git 文件夹, 从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。

所有的项目文件已经在这个新建的 linux-registry 文件夹里面了,准备就绪等待后续的开发和使用。

上传本地项目至Git仓库

https方式

拷贝想要上传的本地项目文件至工作区里

cp /root/test.sh /root/gitee/linux-registry

将当前工作区的内容添加到暂存区

 pwd
/root/gitee/linux-registry

git add .

将暂存区的文件提交到本地仓库

git commit -m "test"

-m 打一个标签信息"test"

[master 51160d2] test
 1 file changed, 1 insertion(+)
 create mode 100644 test.sh

将本地仓库的文件上传到gitee仓库

git push

Username for 'https://gitee.com': yourGiteeName#输入你的gitee的用户名
Password for 'https://liuzh@gitee.com': #输入你的gitee密码

Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/hezi-fungus/linux-registry.git
   00a2172..51160d2  master -> master

至此,就上传成功了

ssh-key方式

  1. 生成 RSA 密钥

ssh-keygen -t rsa

输出:

Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/hezi-fungus/linux-registry.git
   00a2172..51160d2  master -> master

  • 中间通过三次回车键确定
  1. 查看生成的 SSH 公钥和私钥:

ls ~/.ssh/

  • 私钥文件 id_rsa
  • 公钥文件 id_rsa.pub
  1. 读取公钥文件 ~/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa.pub

输出,如:

ssh-ed25519 AAAxxxxxxxrmgjCiF4K Gitee SSH Key

复制终端输出的公钥。

添加个人公钥​

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加个人公钥」 ,将生成的公钥添加到仓库中。

添加成功后,就可以使用 SSH 协议对仓库进行拉取,无需再进行账号密码的输入

pwd

/root/gitee/linux-registry

ls

这里将本地的nginx.tar的镜像复制了进来

git add .

git commit -m"nginxImage"

git push

相关概念

 1. 工作区(Working Directory)

工作区是你当前正在操作的目录。

当你克隆(git clone)或初始化(git init)一个 Git 仓库后,工作区就是你在电脑文件系统中看到的目录和文件。

你可以在这个区域中对文件进行修改、添加新文件或删除文件等操作。

Git 会追踪这些变更,但直到你显式地告诉 Git 去记录这些变更之前,这些变更都是未提交的。

2. 暂存区(Stage/Index)

暂存区是一个中间区域,介于工作区和 Git 目录之间。

当你使用 git add 命令将文件添加到 Git 仓库时,这些文件实际上是被添加到了暂存区,而不是直接提交到了 Git 目录(仓库)。

暂存区的作用是允许你在提交之前对即将提交的内容进行最后的检查和确认。

你可以使用 git status 命令来查看当前工作区和暂存区的状态。

3. Git 目录(Repository 或 .git 目录)

Git 目录(也称为 .git 目录)是 Git 用来存储项目元数据和对象数据库的地方。

这是一个隐藏目录,位于你的项目根目录下(除非你使用了一个不同的位置来初始化仓库)。

.git 目录包含了项目的所有历史记录、分支信息、配置信息(如用户名称和电子邮件地址)以及暂存区信息等。

当你使用 git commit 命令提交变更时,Git 会将暂存区中的文件快照永久性地保存到 Git 目录中,并创建一个指向这个快照的提交(commit)对象。这个提交对象包含了指向父提交(如果有的话)的指针、作者和提交者信息、时间戳以及一个指向暂存区内容快照的指针。

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

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

相关文章

【python】PyQt5中的QFrame控件,控制图形的边框样式、阴影效果、形状等属性

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Redis】Redis 底层的数据结构(结合源码)

众所周知&#xff0c;Redis 是一个高性能的开源内存数据库&#xff0c;支持多种数据结构&#xff08;如字符串、哈希、列表和集合&#xff09;&#xff0c;提供持久化选项以确保数据安全&#xff0c;并具备高可用性和分布式功能。 下面我们就来了解一下其底层所使用到的数据结…

包装类和简单泛型

一、包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型。 1.1 基本数据类型和对应的包装类 注意&#xff1a;除了 Integer 和 Character&#xff0c; 其余基本类型的…

微信怎么恢复好友?找回失联好友,5个有效方法奉上!

微信&#xff0c;这个我们日常沟通不可或缺的工具&#xff0c;但有时会因为一些小疏忽&#xff0c;让我们不小心与好友失去了联系。可能是误删了好友&#xff0c;也可能是换了手机没来得及备份&#xff0c;导致那些熟悉的面孔从列表中消失。 那么&#xff0c;微信怎么恢复好友…

软件设计师全套备考系列文章9 -- 算法设计与分析

软考-- 软件设计师&#xff08;9&#xff09;-- 算法设计与分析 文章目录 软考-- 软件设计师&#xff08;9&#xff09;-- 算法设计与分析前言一、章节考点二、分治法三、回溯法四、贪心法五、动态规划法 前言 考试时间&#xff1a;每年5月、11月&#xff0c;软件设计师每年都…

当《黑神话:悟空》中的天命人,被AI换脸成老外…

前言 挡不住&#xff0c;根本挡不住&#xff01; 《黑神话&#xff1a;悟空》&#xff0c;这款由游戏科学公司制作的&#xff0c; 以中国神话为背景的角色扮演游戏&#xff0c;8月20日一上线&#xff0c; 就连续霸榜Steam、WeGame 等平台销量榜首&#xff0c; 肉饼的朋友圈…

软件测试学习笔记丨多表查询及子查询

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/31940 一、多表简介 定义&#xff1a;结合两个或多个表来执行SQL数据库操作&#xff0c;这通常涉及到一个或多个表的关联&#xff0c;基于某些共享的列&#xff08;通常是键&#xff09;之间…

C++面试基础系列-polymorphic多态性

系列文章目录 文章目录 系列文章目录C面试基础系列-polymorphic多态性Overview1.polymorphic多态性2.编译时多态的实现示例代码&#xff1a;函数重载示例&#xff1a;运算符重载示例&#xff1a;模板示例&#xff1a; 3.运行时多态的实现示例代码 4.编译时多态的优点关于作者 C…

高校考勤小程序的设计与实现---附源码131039

摘 要 随着计算机的发展及网络技术的应用&#xff0c;当今社会正快速向信息自动化社会前进&#xff0c;信息自动化的作用也闲的的尤为重要&#xff0c;特别是各行业的管理领域&#xff0c;智能化信息处理已是提高效率、规范管理、客观审查的最有效方法。近年来&#xff0c;随着…

双模显示器是什么?原来是可变化的显示屏

随着科技的进步和人们对高品质视觉体验需求的增加&#xff0c;显示技术正在经历一场深刻的变革。近年来&#xff0c;双模显示器逐渐引起了广泛关注&#xff0c;成为显示器设计的新趋势。那么什么是双模显示器呢&#xff1f;它都有哪些优势&#xff1f;下面就一起来了解一下。 …

C++学习笔记----4、用C++进行程序设计(三)---- 类间关系

作为一名程序员&#xff0c;会不可避免地碰到不同的类具有相同的特点&#xff0c;或者看起来相互之间有一定的关系。面向对象的编程语言提供许多技术来处理类间的这种关系。比较令人迷惑的部分就是理解 这些关系到底是什么&#xff1f;有两种主要的类间关系--复合关系&#xff…

【三维语义分割模型】PAConv

【版权声明】本文为博主原创文章&#xff0c;未经博主允许严禁转载&#xff0c;我们会定期进行侵权检索。 参考书籍&#xff1a;《人工智能点云处理及深度学习算法》 本文为专栏《Python三维点云实战宝典》系列文章&#xff0c;专栏介绍地址“【python三维深度学习】python…

780nm扫地机器人模组出现质量问题怎么检测?

随着智能家居的普及&#xff0c;扫地机器人已成为现代家庭不可或缺的清洁助手。其中&#xff0c;780nm扫地机器人模组作为扫地机器人的核心部件之一&#xff0c;其质量和性能直接影响到扫地机器人的整体表现。然而&#xff0c;在使用过程中&#xff0c;有时会遇到模组出现质量问…

无线领夹麦克风怎么挑选?选购领夹麦克风必看的五大智商税!

在数字音频技术飞速发展的今天&#xff0c;无线领夹麦克风已经不再是遥不可及的奢侈设备&#xff0c;而逐渐成为普通人记录生活、录制音视频、乃至直播互动的得力助手。但如今市面上的麦克风多到让眼眼花缭乱&#xff0c;对于一些没有经验的新手小伙伴&#xff0c;更是不知从何…

以简单的例子从头开始建spring boot web多模块项目(二)-mybatis简单集成

继续使用以简单的例子从头开始建spring boot web多模块项目&#xff08;一&#xff09;中的项目进行mybatis集成。 1、pom.xml文件中&#xff0c;增加相关的依赖包的引入&#xff0c;分别是mybatis-spring-boot-starter、lombok、mysql-connector-java 如下&#xff1a; <d…

python实用教程(二):安装配置Pycharm及使用(Win10)

上一篇&#xff1a;python实用教程&#xff08;一&#xff09;&#xff1a;安装配置anaconda&#xff08;Win10&#xff09;-CSDN博客 1、简介及下载 PyCharm是一款功能强大的 Python 编辑器&#xff0c;具有跨平台性。是Jetbrains家族中的一个明星产品。 下载地址&#xff…

Nacos漏洞检测总结

弱口令 默认账号密码 nacos/nacos POST /nacos/v1/auth/users/login HTTP/1.1 Host: xxxx:8848 Connection: keep-alive Content-Length: 29 Accept: application/json, text/plain, */* User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like…

高效分页策略:掌握 LIMIT 语句的正确使用方法与最佳实践

本文主要介绍limit 分页的弊端及线上应该怎么用 LIMIT M,N 平时经常见到使用 <limit m,n> 合适的 order by 来实现分页查询&#xff0c;这样做到底性能如何呢&#xff1f; 先来简单分析下&#xff0c;然后再实际验证一下。 无索引条件下&#xff0c;需要做大量的文件排…

代码随想录 刷题记录-13 回溯(2)组合问题

在这里涉及到的回溯中的抽象树&#xff0c;都是“选哪一个元素”的思想。 1.第77题. 组合 回溯法就用递归来解决嵌套层数的问题。 把组合问题抽象为如下树形结构&#xff1a; 可以看出这棵树&#xff0c;一开始集合是 1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c; …

探索Python交互式编程的新境界:Python-prompt-toolkit的魔法

文章目录 探索Python交互式编程的新境界&#xff1a;Python-prompt-toolkit的魔法背景&#xff1a;为何选择Python-prompt-toolkit&#xff1f;Python-prompt-toolkit是什么&#xff1f;如何安装Python-prompt-toolkit&#xff1f;简单使用&#xff1a;Python-prompt-toolkit的…