Git 入门精讲

我们为什么要学习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 操作命令指南

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

04 经典的OSPF

思维导图的方式回顾OSPF 什么是OSPF?为什么需要OSPF? - 华为 (huawei.com) 1 ospf 领行学习思维导图 1.1 ospf 的工作过程 建立领据表同步数据库计算路由表1.2 ospf 的状态

C++ 红黑树

目录 一、红黑树的概念和性质 二、实现红黑树 1、节点定义构造 2、插入 3、左单旋&右单旋 4、中序遍历 5、检查平衡 6、获取树的高度 7、查找 8、析构 测试 完整版 一、红黑树的概念和性质 红黑树,是一种二叉搜索树,但在每个结点上增加一…

数据恢复与硬盘修理

第1篇 数据恢复与硬盘修理基础 本篇包括第1章,主要介绍数据恢复的发展现状、硬盘维修的基本知识以及一些基本工具的使用。 第1章 基础知识 1.1 数据恢复技术的发展和研究现状 目前国内的数据恢复服务市场处于一个极不规范的状态。虽然大部分数据恢复服务提供商是…

Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程

CSDN 成就一亿技术人! 今天出一期Centos下安装Mysql(详细教程)包括数据库密码跳过修改 CSDN 成就一亿技术人! 目录 1.获取安装包 2.安装程序 安装下载的rpm包 查看安装包 修改5.7版本(重要) 安装M…

如何生成漂亮的静态文档说明页

分享:如何生成漂亮的静态文档说明页 最近经常被问 https://t.itmuch.com/doc.html 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。 TIPS https://t.itmuch.com/doc.html 是个人在慕课网视频《 面向未来微服务:Spring Cloud Alibab…

二叉树堆的应用实例分析:堆排序 | TOP-K问题

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 前言一、堆排序1.1 排序思想1.2 堆排序过程(图解)1.3 堆排序代…

C++ 数论相关题目(欧拉函数、筛法求欧拉函数)

1、欧拉函数 给定 n 个正整数 ai ,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N) 。 若在算数基本定理中,Npa11pa22…pamm ,则: ϕ(N) Np1−1p1p2−1p2…pm−1p…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时,构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据,需要确定满…

b+树的理解

二叉树: 每个节点支持两个分支的树结构,相比于单向链表,多了一个分支。 二叉查找树: 在二叉树的基础上增加了一个规则,左子树的所有节点都小于它的根节点,右子树的所有节点都大于他的根节点。 二叉查找树…

Flutter中实现中国省份地图

效果展示(这里只展示局部,完全展示违规): 可以点击省份改变颜色,更多功能可以自行拓展。 注:非完整中国地图!!! 本文用于记录在Flutter项目中安卓端实现中国地图,因为实现过程是通过…

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 …

【Linux C | 进程】Linux 进程间通信的10种方式(2)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

手写一个图形验证码

文章目录 需求分析 需求 使用 JS 写一个验证码&#xff0c;并在前端进行校验 分析 新建文件 VueImageVerify.vue <template><div class"img-verify"><canvas ref"verify" :width"state.width" :height"state.height&qu…

OpenCV-Python(51):基于Haar特征分类器的面部检测

目标 学习了解Haar 特征分类器为基础的面部检测技术将面部检测扩展到眼部检测等。 基础 以Haar 特征分类器为基础的对象检测技术是一种非常有效的对象检测技术(2001 年Paul_Viola 和Michael_Jones 提出)。它是基于机器学习的,通过使用大量的正负样本图像训练得到一个cascade_…

socket以及字节序

1. socket 介绍&#xff1a; 简介&#xff1a; 所谓 socket&#xff08; 套接字&#xff09;&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的 端点的抽象。 一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所…

推荐一个还可以的windows ssh工具

1.下载 https://github.com/kingToolbox/WindTerm/releases 2.解压 3.使用 上传 下载都很快 比cmd窗口好用 当然和finalshell有点像

Linux编辑器vim(含vim的配置)

文章目录 前言vim的基本概念vim基本操作进入vim模式切换退出vim vim指令vim命令模式指令vim底行模式命令 简单vim配置 前言 本篇文章&#xff0c;小编将介绍Linux编辑器–>vim以及vim的配置。 vim的基本概念 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动&#xf…

云贝教育 |【分享课】1月25日Oracle分享主题:Oracle 单实例DG

分享主题&#xff1a;Oracle 19c 单实例DG-1 讲师&#xff1a;刘峰 直播时间&#xff1a;1月25日周四19:30 直播平台&#xff1a;微信视频号 云贝学院

(更新)“高铁开通”地级市-多期DID工具变量(2000-2022年)

参照卞元超&#xff08;2019&#xff09;、邓慧慧&#xff08;2020&#xff09;、汪克亮&#xff08;2021&#xff09;等人做法&#xff0c;将开通高铁的城市作为处理组&#xff0c;未开通高铁的城市作为对照组。地级市开通高铁之后的DID赋值为1&#xff0c;未开通则赋值为0 一…

云计算中的出口数据是指什么?

谷歌云&#xff08;Google Cloud&#xff09;近日宣布了一项重大政策变动&#xff0c;决定免除那些选择终止使用其服务并将数据迁移到其他云服务商或本地环境的客户的出口数据费用&#xff08;数据导出费用&#xff09;。 这一举措由谷歌云平台负责人阿米特扎维里&#xff08;A…