虚拟项目学习git/github原理与基本操作1

[Github项目安装]基于深度学习的原神自动钓鱼实现记录 基于深度学习的原神自动钓鱼实现记录与环境搭建bug解决方案 阅读详情

本人为了更好的学习git的基本操作,利用github给提供的良好的服务,通过一个虚拟项目来熟练git的基本操作与原理。


1. Git基础知识


在git中每一次版本信息都是对所有文件的一次快照,保存了指向这个快照的索引。


对于任何一个文件,git内部只有三种状态,已提交(committed),已修改(modified)和已暂存(staged).

已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

文件的三种状态的转换可以看图,(手工画的)



每个项目都有一个 git 目录,它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。

所谓的暂存区域只不过是个简单的文件,一般都放在 git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。


说明:git是一个分布式的版本控制系统,也就是在你的本地有完整的一个仓库的备份,所以你几乎所有的操作都可以在本地完成,处理速度非常快,因为本地有完成的服务器数据镜像。

暂存区指的是文件已经修改,并且添加的版本控制追踪中,在下一次提交的时候即可提交到代码仓库中。 

之所以有暂存区,是因为git的所有存入仓库的操作都是针对暂存区的文件进行的。

很多刚刚接触git的会被git的 本地数据库(git directory)弄晕,因为git本地保存了一个仓库镜像,所以你的所有操作都是对本地这个仓库进行操作的。这么理解就非常方便了。

git directory 经常被称为HEAD,就是当前的工作的分支,以后会经常遇到HEAD这个词。

这里也可以这么理解,就是git的本地仓库分为三颗“树”,一个是工作目录,一个是暂存区,成为索引区,记录下一次提交到仓库的文件,还有就是HEAD了,相当与仓库的本地备份。


2. git安装


这个是很简单的问题,请参考:http://yunsim.com/ch1-4.html


3. git基本配置

基本上需要配置的就是用户名以及邮箱,用来在提交代码的时候记录用户信息。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

按照上面的说明就能完成github的基本配置。
然后利用git config --list命令查看git 配置是否正确:
watkins@watkins:~$ git config --list 
user.name=weixingstudio
user.email=watkins.song@gmail.com
credential.helper=cache --timeout=7200
github.user=weixingstudio
crediential.helper=cache
watkins@watkins:~$ 


其他的配置信息可以省略,也可以根据自己需求进行配置。
深入理解Git与GitHub:原理与实战指南 在软件开发的历史长河中,版本控制系统经历了从集中式向分布式的发展。最初,开发者们依赖于简单的文件备份和手动合并来跟踪代码变更。这种方法很快暴露出诸多问题,例如版本冲突、历史记录丢失、多人协作困难等。集中式版本控制系统(CVCS),如CVS和Subversion,试图解决这些问题,将所有代码维护在单一的服务器上。尽管这种集中式的做法提高了团队协作的效率,但其缺点也显而易见。任何对服务器的依赖都可能成为单点故障,一旦服务器发生故障,整个开发进程将被迫停滞。 阅读详情

相关推荐

Git和Github原理和操作

Git原理,github操作,命令行操作git,git的eclipse操作,虚拟机gitlab搭建

git及github的原理及使用(一)

目录 1、版本控制工具应具备的特点 2、版本控制工具分类 3、Git结构 4、代码托管中心 5、本地库和远程库的联系 6、安装Git 7、基本命令操作 8、版本管理 9、分支 10、Git原理 1、版本控制工具应具备的特点 协同修改:多人并行不悖的修改服务器端的同一个文件。 数据备份:不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。 版本管理:在保存每一...

qinshi965273101的专栏 3264

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1468

github原理剖析

一:目录结构 二:暂存区 三:git对象 Git 是一个内容寻址文件系统。这意味着,Git 的核心部分是一个简单的键值对数据库(key-value data store)。 你可以向该数据库插入任意类型的内容,它会返回一个键值,通过该键值可以在任意时刻再次检索(retrieve)该内容。 下面我们往git数据库存入一些数据 $ echo 'test content' | git hash-ob...

不会写代码的胖子 1087

非目标代谢组学(untargeted metabolomics)中常用的方法学考察的方法(四)

最早使用的一种方法,从QC样本的总离子流图中选择具有代表性的离子峰(覆盖不同的保留时间,不同的强度),在对QC样本进行重复检测之后,计算这些离子的保留时间以及峰面积的相对标准偏差(RSD),用以考察分析方法的稳定性以及重复性。所有样品检测完之后,收集所有的QC样本的原始数据进行数据预处理,包括(峰提取,排列,归一化等),经过数据过滤(80%规则)之后,计算剩下的峰的峰面积的RSD值。由于QC样本是 等量混合了所有的被检测样本,理论上QC样本包含了所有样本中的代谢物,因此QC样本理论上会。

hlllllllhhhhh的博客 1489

自动驾驶中的多传感器融合实战:用卡尔曼滤波搞定毫米波雷达与摄像头航迹对齐

本文深入探讨了自动驾驶中多传感器融合的实战技术,重点介绍了如何使用卡尔曼滤波实现毫米波雷达与摄像头的航迹对齐。通过分析传感器特性差异、时空同步挑战及工程化实现步骤,提供了包括状态向量定义、观测矩阵设计和故障检测机制在内的完整解决方案,最终实现0.15米以内的高精度航迹对齐。

weixin_28728495的博客 411

GitHub的原理及应用详解(一)

在本系列文章中,我们将深入探讨GitHub的原理和应用,从基础的使用教程到高级的功能和工具的应用,帮助大家更好地理解和使用GitHub来管理和协作开发项目。无论是初学者还是有一定经验的开发者,都可以从本系列文章中获取到有价值的知识和实践经验。希望本系列文章能够帮助大家提高开发效率和团队合作能力,并在开发过程中取得更好的成果。

凛鼕将至的博客 3212

c语言实现求一个矩阵特征值和特征向量

前言 求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习! 这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。 最后,如果有不对的地方希望大...

qq_36417014的博客 2万+

GitHub到底是干什么的?使用场景是什么?底层原理是什么?

GitHub是全球最大的代码托管与协作平台,其核心价值在于将深度融合,为开发者提供从代码管理到项目全生命周期的一站式解决方案。

长风破浪会有时的博客 1万+

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9405

分布式爬虫架构实战:Scrapy+RabbitMQ+浏览器池,百万级数据抓取成本直降60%(附架构图+源码)

任务调度瓶颈:Redis 作为消息队列,不支持复杂任务优先级,高并发下容易消息堆积,且单点故障会导致全量任务丢失;资源浪费严重:每个爬虫节点每次爬取动态页面都启动新浏览器,启动耗时3-5秒,CPU 占用率高达80%+,单机最多同时跑3个浏览器;扩展性差:新增节点需要手动同步任务队列,节点忙闲不均,无法根据任务量动态分配资源。# 从settings读取RabbitMQ配置# 注册信号:爬虫关闭时关闭RabbitMQ连接"""启动时建立RabbitMQ连接"""

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1618

git图解:代码区域总结

本文背景,在实际项目中使用git已有一年多,发现不少同事虽然会使用常用git指令,但并不理解每个指令对应的作用原理。今天静下心总结下git 的基本理解:代码的存在区域;本文以实际项目出发,理清使用git过程中,代码的迁徙流程。 git跟传统的代码管理器(如:svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使无法联网也一样能提交代码。术语解释: 工作区间:即我们...

anku1776的博客 2254

倍福---EL2262模块飞拍配置

控制器安装了twincat3,用EL2262实现相机飞拍功能。本文档只介绍如何通过EL2262实现飞拍的触发,并不涉及视觉方面的处理 参考文章: https://author.baidu.com/home?from=bjh_article&app_id=1669190598708386 https://mp.weixin.qq.com/s/r4Iq8kOP-o4_M8vCce5M9g 1、 飞拍的应用 在大多数场合,只能当被检测工件和相机都处于静止状态下才能进行拍照,拍照完成后,再移动工件或相机,进

weixin_41883890的博客 3742

github代码复现/github项目部署/Github项目环境配置/跑通github项目/python机器学习跑通

github代码复现/github项目部署/Github项目环境配置/跑通github项目/python机器学习跑通。

2501_90824910的博客 2324

Kaggle赛题总结:Enefit - Predict Energy Behavior of Prosumers

竞赛旨在解决能源不平衡的问题,即预计使用的能源与实际使用或产生的能源不符。自发自用者是既消耗又产生能源的个体,他们在造成能源不平衡方面起到了重要作用。尽管他们只占所有能源消费者的一小部分,但他们不可预测的能源使用行为给能源公司带来了物流和财务问题。如果不加以解决,可能会导致运营成本增加、电网不稳定以及能源资源的低效利用。如果这个问题得到有效解决,将显著降低不平衡成本,提高电网的可靠性,并使自发自用者更高效和可持续地融入能源系统中。

猫敷雪 741

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

虚拟项目学习git/github原理与基本操作2

假设我们的虚拟项目是某财务系统,计算某个公司的纳税额等信息。 先在github中创建一个这个项目的repo, 命名为finance. 创建好这个repo以后,github给出了一些基本的命令如下: Create a new repository on the command line touch README.md git init git add README.md git commit

Work Hard, Play Harder! 2219

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

虚拟项目学习git/github原理与基本操作7

项目的分支管理 Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。在若干次提交后,你其实已经有了一个指向最后一次提交对象的 master 分支,它在每次提交的时候都会自动向前移动。 如果你没有指定当前的分支的名字,git会自动的使用master作为当前的分支的名字,并且有个指针指向当前的工作的分支,每次提交项目

Work Hard, Play Harder! 1533

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

虚拟项目学习git/github原理与基本操作5

首先查看一下我们当前项目的提交历史,可以使用git log $ git log watkins@watkins:~/watkins/finance$ git log commit f2f51bd6eefdd115ec4be37540f97dfb81828ad1 Author: weixingstudio Date: Thu Jan 3 13:32:15 2013 +0800

Work Hard, Play Harder! 1944

虚拟项目学习git/github原理与基本操作8

假设目前我们的项目状态是这样的,如下图所示,分支的情况,当前已经把其他的分支都合并到了master分支。 接下来的操作都以上面图中最新的master分支为基础进行,前面的都不去讨论。 现在我们将master分支向前推进两步,分别添加写别的功能,在function2中。 如果不推送到远端的话,远端仓库的HEAD指针会比当前工程的指针落后一步。 所以把工程推送到远端。 然后再

Work Hard, Play Harder! 1747

虚拟项目学习git/github原理与基本操作3

获得远端仓仓库的代码,使用git clone  $ git clone git://github.com/schacon/grit.git 你可能已经注意到这里使用的是 clone 而不是 checkout。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克

Work Hard, Play Harder! 1265

Linux 下建立 Git 与 GitHub 的连接并克隆到本地

Linux 下建立 Git 与 GitHub 的连接 Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台。 GitHub 利用 Git 极其强大的克隆和分支功能,使得社区成员能够自由地参与到开源项目中去。 不过,在开始学习之前,你需要一个 GitHub 账号,以及一台能联网的 Linux 虚拟机。 ====准备工作==== 安装 Git ...

井底之蛙 2万+

虚拟项目学习git/github原理与基本操作4

新建一个新的文件,作为项目的第一个正式文件,因为当前我们的项目中已经包含一个README文件,这个时候做了一次项目的提交,所以我们现在项目的一个版本记录了当前版本的所有文件的镜像,我们称为C1。 查看当前项目状态: git status 会给出当前项目中的文件的状态,是未跟踪,还是已经修改没暂存,或者已经暂存,或者已经提交等状态。 watkins@watkins:~/w

Work Hard, Play Harder! 1546

利用GitHub高效学习Python:从环境搭建到项目实战的完整指南

开源协作是现代软件开发的核心实践,其原理在于通过版本控制系统(如Git)和代码托管平台(如GitHub)实现全球开发者的分布式协作与知识共享。这一模式的技术价值在于提供了海量、实时、高质量的真实项目代码库,极大地降低了学习门槛并加速了工程能力的培养。在Python学习领域,GitHub的应用场景尤为广泛,学习者可以通过阅读、运行和修改开源项目,将理论知识转化为解决实际问题的能力。本文聚焦于如何系统性地利用GitHub进行Python学习,涵盖了虚拟环境配置、Git操作、项目搜索与评估、代码深度阅读、以及从模

weixin_30780649的博客 362

虚拟项目学习git/github原理与基本操作6

在系统发布新版本或者有里程碑式的重大版本变化的时候,我们往往习惯给软件加个tag. 用来做标注与说明,同时tag的使用也比冗长的版本号要方便得多。 $ git tag 使用上面的命令可以查看当前系统的所有的tag. watkins@watkins:~/watkins/finance$ git tag v0.1 watkins@watkins:~/watkins/fin

Work Hard, Play Harder! 1460

虚拟项目学习git/github原理与基本操作10

衍合 把一个分支整合到另一个分支的办法有两种:merge(合并) 和 rebase(衍合)。在本章我们会学习什么是衍合,如何使用衍合,为什么衍合操作如此富有魅力,以及我们应该在什么情况下使用衍合。 简单的说衍合就是把当前的分支的变化在另外的一个分支上重演一次。 在我们以前的项目的基础上,把 master分支向前推进两步。 因为我在自己练习的时候已经将featur

Work Hard, Play Harder! 1317

windows 虚拟环境Django项目提交到GitHub总结

在写了很多次项目之后,今天突然决定重新写,并边写边提交到GitHub,简单总结一下经验,以及中间出现的一些错误。 由于之前没有经验,所以事先在GitHub上新建了仓库。正由于这一步,所以导致了后续的一系列事情。 由于之前在Windows系统上面提前安装了pip,所以个人建议,对于学习python,安装pip真的非常重要 一、创建虚拟环境         由于个人使用的是python3.6 ...

wuda19920215的博客 1007
上一篇: git - 简易指南
下一篇: 虚拟项目学习git/github原理与基本操作2
watkins
博客等级 码龄18年 1277粉丝 246原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值