Git 入门精讲

news2024/11/15 13:32:10

我们为什么要学习git?

就当下的发展而言,只要你从事开发就一定会接触git。作为最强大的分布式版本控制器,git 与 svn 有着本质上的区别。

Git是一种分布式版本控制系统,每个开发者都可以在本地维护完整的代码库,可以离线工作并提交代码。
SVN是一种集中式版本控制系统,所有代码都保存在中央服务器上,开发者需要与服务器进行交互才能进行代码管理。

/分支管理性能历史记录开发
GitGit鼓励频繁地创建和合并分支,使得多个功能可以同时进行开发,而不会相互干扰使用了一种快照机制,每次提交都会创建一个文件的完整副本,操作速度非常快,并且占用存储空间较小保留了完整的代码历史记录,包括每次提交的内容、时间和作者等信息由于分布式特性,开发者可以在自己的本地分支上进行自由的实验和开发,不会影响到其他人的工作
SVN分支管理相对较为繁琐,需要手动创建和合并分支记录文件的差异,操作速度较慢,同时占用的存储空间更大有类似的功能,但是需要与中央服务器进行交互SVN的集中式特性限制了开发者的自由度,需要与服务器进行交互

总的来说,Git更适合具有高度分散、并行开发的项目,尤其是开源项目。SVN更适合较小规模的团队,或者需要严格控制代码访问权限的项目。选择Git还是SVN取决于项目的规模、开发模式和需求。

git 的优势包括但不仅限于以下几点:高效的分支管理、快速而便捷、强大的协作功能。

Git以命令行工具的形式提供,同时也有许多可视化工具和集成开发环境(IDE)的插件支持,使得使用Git更加方便。它广泛应用于软件开发、版本管理、代码托管等领域,它是目前最流行的版本控制系统之一。

Git是一个开源的版本控制系统,它是由Linux的创始人Linus Torvalds在2005年创建的。Git的主要目标是处理大型项目的高效管理。



本章主要教大家如何注册并使用git,我选择用命令行拆解步骤,这是为了方便大家理解底层交互。

作者:我不是费圆
概述:适用于git初学者及一般使用者,阅读本文能略微提升你对git的理解

以码云为例:https://gitee.com/
先注册账号
在这里插入图片描述
在这里插入图片描述
公钥的生成方法请点击“怎样生成公钥”
打开下面的文件目录,右键单击id_rsa.pub选择记事本打开,复制全文
在这里插入图片描述
在这里插入图片描述
添加公钥的目的是让git认识这台计算机,在提交信息时区分贡献者,
多台计算机也可以共用同一套公钥
在这里插入图片描述
在这里插入图片描述
创建完成以后复制仓库地址
在这里插入图片描述
打开cmd,进入到项目文件夹下
git init
初始化git 仓库

git remote add 粘贴地址
配置远程仓库,仓库名默认为 origin

git remote -v
查询远程仓库列表(有两条代表添加成功)

在这里插入图片描述
一条是fetch获取地址,另一条是push推送地址
fetch地址的作用:将远程仓库的分支和推送信息更新到本地
push地址的作用:用来推送或更新项目中的更改

git config --global user.name "kaixin"
git config --global user.email "21577...@qq.com"
配置标识信息

git status
查看本地文件状态
在这里插入图片描述
有红色文件名,意为:工作区有更改,需要暂存以防止丢失
有绿色文件名:意为:暂存区有更改,需要提交到本地仓库

git add .
将工作区的修改提交到暂存盘

git commit -m “简述”
将暂存盘里的更改提交到本地仓库

此时你git push 是推送不了的,会报如下信息:
在这里插入图片描述
它说:你还未跟踪远程地址,请执行以下命令设置默认跟踪地址
因为remote 可以配置多个远程仓库,即一个项目指向多个仓库
它不知道你要将更改推送到哪一个仓库,需要你告诉他
git push -u origin master
push 推送
-u 设为默认仓库
origin 仓库名
master 分支名
在这里插入图片描述
如果你的项目文件较多,此时推送可能会卡住
Ctrl + c 停止

在项目根目录下创建文件,全名为:
.gitignore
在这里插入图片描述
这类文件没有具体文件名,后缀即为名称
打开此文件,写入

.DS_Store
node_modules/
dist/
dist.*
**/*.log
.vscode
*.local

这里写入的字符作为文件名或文件夹名称被git 过滤
不会被提交到本地仓库,也不会被推送到远程
dist/ ☞ 文件夹及所有子文件
*.log ☞ 所有以.log 作为后缀的文件

保存以后
git add . 暂存
git commit -m “gitignore-config” 提交
git push 推送

你的远程仓库中就生成了如下内容
在这里插入图片描述
为本项目添加成员,不同的角色会赋予他不同的权限。如图所示:
在这里插入图片描述
仓库成员首次使用码云gitee,也要配置公钥(公钥的生成方法请看前半部分)。
其次本地公钥 要与 线上公钥保持一致。
在这里插入图片描述
仓库成员复制仓库地址,cmd输入
git clone 仓库地址 仓库别名(可省略不写)
如:git clone https://gitee.com/avec-vous/shu-hai.git
克隆时得到的代码是默认分支上最新的

git pull origin master
拉取指定仓库,指定分支上的代码

如果git push -u 配置过默认推送地址
可以直接使用git pull

git status 查看工作区状态
在这里插入图片描述
未暂存的文件是红色,未提交的文件是绿色

本章到此结束
转载要注明出处哦!


推荐阅读
Git 基础命令与事件详解(基础版)

推荐下载
从 0 到 10 的 Git版本控制器入门精讲
配合Git flow 流程使用的git 操作命令指南

在这里插入图片描述
“我仍认为我们接受高等教育的目的是帮助我们的家乡摆脱贫困,而不是摆脱我们贫困的家乡。生如蝼蚁当有鸿鹄之志,为天地立心,为生民立命,为往圣继绝学,为万世开太平。”

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

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

相关文章

第21课 在Android Native开发中架起java与c++互通的桥梁

在开始本节课,我尝试把项目拷贝到另一台电脑上以便继续工作,但出现了大量的“could not be resolved”问题,尝试包含新的include路径也无法解决该问题,最后删除了项目的Native Support,然后重新添加Native Support才解…

HarmonyOS鸿蒙学习基础篇 - Text文本组件

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 Text文本组件是可以显示一段文本的组件。该组件从API Version 7开始支持,从API version 9开始,该接口支持在ArkTS卡片中使用。 子组件 可…

【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建

系列文章目录 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part1 案例复现 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part3 化为己用 在一个人体姿态估计的任务中,需要用深度学习模型…

上门服务小程序|预约上门服务系统开发有哪些功能?

在现代快节奏的生活中,压力和疲劳常常困扰着我们。为了缓解这种状况,越来越多的人选择去按摩店进行放松。然而,繁忙的工作和家庭责任往往让我们无法抽出时间去按摩店。在这种情况下,上门按摩服务应运而生。而随着科技的发展&#…

VI / VIM的使用

vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x win…

SpringMVC第二天

今日内容 能够掌握SSM整合的流程 能够编写SSM整合功能模块类 能够使用Result统一表现层响应结果 能够编写异常处理器进行项目异常 能够完成SSM整合前端页面发送请求实现增删改查操作 能够编写拦截器并配置拦截器 一、SSM整合【重点】 1 SSM整合配置 问题导入 请描述“SSM整…

IntelliJ IDE 插件开发 | (五)VFS 与编辑器

系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…

Windows AD 组策略 通过脚本修改管理员密码:以安全方式

因为本文主要讲的是通过脚本如何以安全方式设置密码,所以关于组策略如何设置请参考这里: WinServer 2019 AD 组策略 启用本地管理员账号,重置密码_ad域命令启用administrator账户-CSDN博客 我们首先要讲一下,以一般方法创建的脚…

力扣1027. 最长等差数列

动态规划 思路: 可以参考力扣1218. 最长定差子序列目前不清楚公差,可以将序列最大最小值找到,公差的范围是 [-(max - min), (max - min)],按公差递增迭代遍历求出最长等差数列; class Solution { public:int longest…

写一份简单的产品说明书:格式和排版建议

现在的市场竞争那么激烈,拥有一份简洁明了的产品说明书可以说是很重要的。产品说明书不仅向用户提供了对产品的详细了解,还能够树立品牌形象,提升用户体验。 | 一、写一份简单的产品说明书—一些建议 1.创意封面设计 一个吸引人的封面设计能…

浅析混沌工程的主要概念和作用

混沌工程是一种系统设计和测试方法,旨在通过有目的地在生产环境中引入故障来发现和解决系统中的潜在问题。通过模拟故障和持续测试,有助于发现和解决系统中的潜在问题,提高系统的可靠性、弹性和安全性。 故障引入: 混沌工程通过故…

for循环延时时间计算

​ 文章目录 前言一、计算方式二、for循环 2.1 for循环里定义变量2.2 codeblock设置C99标准 三、四、总结 前言 之前做led点亮的实验,好像是被delay函数影响了,因为delay参数设置的不对,led没有正常闪烁。现在就想搞明白一些。 一、计算…

Windows11 Copilot助手开启教程(免费GPT-4)

Windows11上开启Copilot助手教程踩坑指南 Copilot介绍Copilot开启步骤1、更新系统2、更改语言和区域3、下载 ViVeTool 工具4、开启Copilot 使用 Copilot介绍 Windows Copilot 是 Windows 11 中的一个新功能,它可以让你与一个智能助理进行对话,获取信息&…

Win11在某些时候想要关闭windows安全中心应该怎么做,安装navicat事例

比如在安装navicat时,需要注册,注册机被删,就是windows安全中心干的,所以要想办法,不让他把注册机删掉,那么这里有一个比较巧妙的办法,就使用排除项,关闭 实时保护, 添…

app逆向-frida安装调试

文章目录 一、前言二、安装三、hook调试,hook java类 一、前言 frida是一款基于python javascript 的hook框架,可运行在android ios linux winosx等各平台,主要使用动态二进制插桩技术 官方网站:https://frida.re/docs/home/ a…

【深度学习】初识深度学习

初识深度学习 什么是深度学习 关系: #mermaid-svg-7QyNQ1BBaD6vmMVi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7QyNQ1BBaD6vmMVi .error-icon{fill:#552222;}#mermaid-svg-7QyNQ1BBaD6vmMVi .err…

探索Gin框架:快速构建高性能的Golang Web应用

前言 Gin框架是一个轻量级的Web框架,基于Go语言开发,旨在提供高性能和简洁的API。它具有快速的路由和中间件支持,使得构建Web应用变得更加简单和高效。无论是构建小型的API服务还是大型的Web应用,Gin框架都能够满足你的需求。 无论…

开源免费无广告Gopeed,现代化的高速下载器,支持(HTTP、BitTorrent、Magnet)等多种协议下载,开源免费、无广告、高度可定制、不限速。

目录 特点 支持的平台 一键部署 体验 特点 全平台支持、开源免费,不限速、无广告 遵循 GPL-3.0 开源协议 支持(HTTP、BitTorrent、Magnet)协议下载 高速下载,底层使用golang协程并发下载 每日自动更新 tracker 列表 去中心…

element-ui 树形控件 通过点击某个节点,遍历获取上级的所有父节点和本身节点

1、需求&#xff1a;点击树形控件的某个节点&#xff0c;需要拿到它上级的所有父节点进行操作 2、代码&#xff1a; 树形控件代码 <el-tree:data"deptOptions"node-click"getVisitCheckedNodes"ref"target_tree_Speech"node-key"id&qu…

Jenkins上跑自动化项目,case出现错误时,导致项目运行时间过长,该如何处理?

1、方案一&#xff1a;Jenkins上调整 进入配置&#xff1a; 构建环境&#xff1a; 自行选择超时时间即可&#xff5e; 2、方案二&#xff1a;代码调整【python】 安装插件&#xff1a;pytest-timeout 选择一&#xff1a;装饰器用法&#xff1a;将单个测试用例标记为超时&…