Git入门---简介,常用命令

news2024/7/5 22:25:39

                                                   🎬 艳艳耶✌️:个人主页

                                                   🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》

                                                   ⛺️ 越努力 ,越幸运。
 

1.Git 的简介

1.1. 介绍

        Git是一个开源的分布式版本控制系统,最初由Linus Torvalds于2005年创建。它主要用于跟踪文件的变化,协作开发和管理项目的版本。Git可以在本地存储库上进行操作,而不需要联网,这使得它非常适合团队合作和远程开发。

        Git的主要特点包括分支管理、快速的版本控制、轻量级的标签、易于合并等。它还提供了强大的工具和命令行界面,使得开发者可以方便地进行版本控制和协作开发。Git也被广泛应用于开源项目和商业项目中,成为了目前最流行的版本控制系统之一。

1.2. Git与SVN区别

Git :

 分布式架构:每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下工作,具有更好的灵活性和可靠性。

分支管理:Git的分支管理非常轻量级,创建和合并分支非常方便,使得开发者更倾向于频繁地使用分支来进行开发,提高了开发效率。

性能:Git的性能通常比SVN更好,尤其是在处理大型项目和大量文件时,具有更高的效率和速度。

数据完整性:Git使用SHA-1哈希来保证数据的完整性,可以更好地防止数据损坏和篡改。
 

SVN :

集中式架构:SVN是一个集中式版本控制系统,所有的代码都存储在中央服务器上。这意味着如果服务器出现故障或者网络连接问题,开发者将无法提交代码或者获取最新的代码,导致开发工作受到严重影响。

分支和标签管理:在SVN中,分支和标签的管理相对复杂,创建和合并分支需要花费较多的时间和精力。相比之下,Git等分布式版本控制系统在分支管理方面更加灵活和高效。

性能问题:在处理大型项目和大量文件时,SVN的性能可能会受到影响,特别是在频繁的提交和更新操作时,可能会导致性能下降。

数据完整性:SVN没有内置的数据完整性检查机制,因此在一些情况下可能会出现数据损坏或篡改的问题。

缺乏本地操作:SVN需要通过网络连接到中央仓库才能进行版本控制操作,因此在没有网络连接的情况下无法进行提交、更新等操作。

Git和SVN都是版本控制系统,但它们有很多不同之处。

分布式 vs 集中式:Git是一个分布式版本控制系统,每个开发者都可以在本地拥有完整的代码仓库,并且可以在没有网络连接的情况下工作。而SVN是一个集中式版本控制系统,开发者需要通过网络连接到中央仓库才能进行版本控制操作。

分支管理:在Git中,分支是非常轻量级的,创建和合并分支非常方便,因此开发者更倾向于频繁地使用分支来进行开发。而在SVN中,分支和标签的管理相对复杂,因此开发者使用分支的频率通常较低。

历史记录:在Git中,每个本地仓库都包含完整的历史记录,因此可以在本地进行查看和操作历史记录。而在SVN中,历史记录需要通过网络连接到中央仓库才能进行查看和操作。

性能:由于Git是分布式的,因此它的性能通常比SVN更好,尤其是在处理大型项目和大量文件时。

数据完整性:Git使用SHA-1哈希来保证数据的完整性,因此可以更好地防止数据损坏和篡改。而SVN则没有内置的数据完整性检查机制。

综上所述,Git相对于SVN具有更好的分布式架构、分支管理、性能和数据完整性等方面的优势,使得它在现代软件开发中越来越受欢迎,Git更适合于分布式团队和开源项目,具有更好的性能和分支管理能力。而SVN的集中式架构、分支管理和性能等方面的缺点,也成为了一些开发者和团队转向Git的原因。

1.3. 使用流程

Git的使用流程通常包括以下几个步骤:

1. 初始化仓库:在本地文件夹中初始化一个Git仓库,可以使用`git init`命令来进行初始化。

2. 添加文件:将需要进行版本控制的文件添加到Git仓库中,可以使用`git add`命令来添加文件。

3. 提交更改:将添加的文件提交到本地仓库中,可以使用`git commit`命令来提交更改,需要添加提交信息以描述本次提交的内容。

4. 创建分支:如果需要在新的分支上进行开发,可以使用`git branch`命令来创建新的分支,然后使用`git checkout`命令来切换到新的分支。

5. 进行开发:在指定的分支上进行代码的修改和开发工作。

6. 合并分支:当开发完成后,可以将新的代码合并到主分支或其他分支上,可以使用`git merge`命令来进行分支合并。

7. 推送到远程仓库:如果需要将本地仓库的更改推送到远程仓库,可以使用`git push`命令来进行推送。

8. 拉取远程仓库的更改:如果其他开发者对远程仓库进行了更改,可以使用`git pull`命令来拉取远程仓库的最新更改到本地仓库。

以上是Git的基本使用流程,当然在实际开发中可能会涉及更多的操作,比如标签管理、撤销更改、解决冲突等。Git具有丰富的命令和功能,可以根据具体的需求进行灵活的使用。
 

2.命令解释

2.1. 文件状态

在Git中,文件可以处于以下几种状态:

1. 未追踪(Untracked):这是文件的初始状态,表示该文件还没有被Git跟踪。在该状态下,Git不会对该文件进行版本控制。

2. 已追踪(Tracked):表示该文件已经被Git跟踪,但是在本地工作区中有更改。

3. 未修改(Unmodified):表示该文件没有被修改过,与最后一次提交的版本一致。

4. 已修改(Modified):表示该文件在本地工作区中被修改过,但是还没有被提交到暂存区。

5. 已暂存(Staged):表示该文件已经被添加到Git的暂存区,等待被提交到版本库中。

6. 已提交(Committed):表示该文件的更改已经被提交到本地版本库中。

这些状态可以通过`git status`命令来查看,该命令会列出工作区中所有文件的状态信息。理解文件的状态有助于开发者更好地管理和控制文件的版本变化,以及了解当前工作区中的文件变化情况。

2.2. 工作区域

在Git中,有三个主要的工作区域:

1. 工作目录(Working Directory):也称为工作区,是你在电脑中能看到的目录,它持有实际文件。

2. 暂存区(Staging Area):也称为索引(Index),是一个单独的文件,保存了即将提交到版本库的文件列表以及相应的文件状态信息。

3. 版本库(Repository):也称为本地仓库,是Git的核心部分,包含了项目的元数据和对象数据库。版本库中存储着你项目的每一个版本的快照。

这些工作区域之间的关系如下:

 当你在工作目录中修改文件时,Git会标记这些文件为已修改(Modified)状态。
通过`git add`命令将已修改的文件添加到暂存区,暂存区中的文件状态变为已暂存(Staged)。
最后,通过`git commit`命令将暂存区中的文件提交到版本库中,完成文件的版本控制。
理解这些工作区域之间的关系有助于你更好地管理和控制文件的版本变化,以及了解当前工作区中文件的状态。

 

3.命令使用

3.1. 安装

在Git官网进行下载,( 下载2.2以上的版本 )

Git下载与安装icon-default.png?t=N7T8https://git-scm.com/downloads

2.2. 使用前准备

首先需要有一个gitee的账号,前往gitee的官网进行注册

gitee官网icon-default.png?t=N7T8http://Chato.cn创建账号之后创建一个仓库。点击右上角的+号,并且点击新建仓库。如图 : 

填入仓库的名称和选择开源之后,就直接创建仓库即可,点击创建。

之后在本地的目录中,创建一个工作区间,来对项目的开发,在这个工作区间中,鼠标右键

点击Git Bash Here ,打开命令窗口。

然后窗口就出来了。 

打开窗口后,分别将Git 全局设置的命令输入其中分别执行一次。 

执行完后,查看本地用户下有没有 .gitconfig 的这个文件,打开看看,和我们的信息是一样的

就OK了。

之后根据 创建 git 仓库的命令,先创建仓库,在进入仓库,进入后将该仓库标记为Git管理的仓库

之后进行根据创建 git 仓库的命令,创建一个文件,再将文件给Git管理,之后查看状态

看到如图所示说明已经给Git管理,如果是红色说明没有。

再到创建仓库完成的页面刷新,就会看到所上传的文件,如图 : 

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

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

相关文章

Adobe Illustrator 2021 下载及安装教程

目录 下载地址: 安装教程: 下载地址: Adobe Illustrator 2021安装包 链接:https://pan.baidu.com/s/1UIzjbS5pRuL7Zpt9RrU5lQ 提取码:lxwj 安装教程: 1、下载压缩包,解压文件 2、双击Set_up.exe&#…

数据分析实战 | 线性回归——女性身高与体重数据分析

目录 一、数据集及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 实现回归分析类算法的Python第三方工具包比较常用的有statsmodels、statistics、scikit-learn等&#…

刚接触银行新业务测试的一些问题

在银行金融领域的测试工作,相信很多测试工程师都会遇到自己不熟悉的业务。然后开始看文档,问开发或者需求人员。搞懂了大概的流程,然后开始进行测试。 不过遇到复杂的业务情况时,真的很需要时间去梳理。而且测试环境的配置问题、不…

ruoyi前后端分离版本开发框架解读---让你快速入门

后端结构 com.ruoyi ├── common // 工具类 │ └── annotation // 自定义注解 │ └── config // 全局配置 │ └── constant // 通用常量 │ └── core …

【Linux】第十四站:进程优先级

文章目录 一、Linux内核怎么设计各种结构二、进程优先级1.基本概念2.是什么3.为什么要有优先级4.批量化注释操作5.查看优先级6.PRI and NI 三、位图与优先级 一、Linux内核怎么设计各种结构 我们前面所写的数据结构都是比较单纯的。 而linux中就比较复杂了,同一个…

深入分析MySQL索引与磁盘读取原理

索引 索引是对数据库表中一列或者多列数据检索时,为了加速查询而创建的一种结构。可以在建表的时候创建,也可以在后期添加。 USER表中有100万条数据,现在要执行一个查询"SELECT * FROM USER where ID999999",如果没有索…

数据结构与算法C语言版学习笔记(5)-串,匹配算法、KMP算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、串的定义二、串的存储结构1.顺序结构2.链式结构 三、串的朴素的模式匹配算法(暴力匹配算法)1.背景2.假设我们要从下面的主串 S"…

VS Code+DevChat助力非专业开发也能玩转代码编程

一、前言 偶然间网上瞎逛,看到DevChat 发布了一款 VS Code 插件,可提供类似chatgpt一样的“一站式 AI 辅助编程”体验。据说, DevChat 直接对接 GPT-4 还让免费用,目前免费注册收邮件即可获取key,再也不用麻烦的外部手…

人工智能在汽车业应用的五项挑战

在汽车行业扩展人工智能应用时需要注意的问题 随着更多企业投资于汽车人工智能 (AI) 解决方案,我们也愈加接近大规模部署 5 级全自动驾驶汽车。汽车行业的组织如果希望加入这场 AI 带来的颠覆性变革,就应该已提前考虑如何成功和大规模地将人工智能部署到…

商人宝:收银系统一般多少钱

推荐方案基于来自各大电商平台的用户评价数据,为您推荐以下收银系统数据: 1.硬件方面 小票打印机、扫码枪、收银盒等硬件终端设备都是不可或缺的。一般小票打印机、扫码枪、收银盒,价格在2-500元之间,性能稳定、使用寿命长、使用…

记录第一次银行测试岗面试【总结几点面试不要犯得错误】

LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作。 18线地区,测试工作并不多。最好的差不多就是LZ目前待着的公司了。遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人来讲,这意味着…

循环链表的设计与基本操作的实现

目录 一.循环链表的设计 二.循环链表的实现 三.循环链表的总结 一.循环链表的设计 1.循环链表的结构设计: typedef struct CNode{int data;struct CNode* next;}CNode ,*CList; 2.循环链表的示意图: 3.循环链表和单链表的区别: 唯一区别,没有空指针,尾节点的后继为头,为循…

订水商城实战教程09-跑马灯

目录 1 跑马灯效果2 创建数据源3 创建变量4 搭建组件5 数据绑定6 录入测试数据总结 上一篇我们介绍了轮播图如何开发,本节我们介绍一下跑马灯的效果开发。 1 跑马灯效果 通常小程序会增加一点动画的效果来让页面显得不那么死板,我们这里增加了一个跑马灯…

软件测试|测试方法论—边界值

边界值分析法是一种很实用的黑盒测试用例方法,它具有很强的发现故障的能力。边界值分析法也是作为对等价类划分法的补充,测试用例来自等价类的边界。 这个方法其实是在测试实践当中发现,Bug 往往出现在定义域或值域的边界上,而不…

深度学习4:BatchNormalization(批规范化)

一、起源 训练深度网络的时候经常发生训练困难的问题,因为,每一次参数迭代更新后,上一层网络的输出数据经过这一层网络计算后,数据的分布会发生变化,为下一层网络的学习带来困难。 Batch Normalizatoin 之前的解决方…

【小黑送书—第四期】>>用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

经过30多年的发展,安全已经深入到信息化的方方面面,形成了一个庞大的产业和复杂的理论、技术和产品体系。 因此,需要站在网络空间的高度看待安全与网络的关系,站在安全产业的高度看待安全厂商与客户的关系,站在企业的高…

excel表的筛选后自动求和

一般都使用subtotal函数。 通过看一个大佬的视频,发现可以有更简单的方法。 首先任意筛选数据(ctrlshiftl), 然后选中需要求和的列的最下方的空白单元格,再按alt。 回车即可。 实质它还是用的subtotal函数

“锡安主义”贝尔福宣言希伯来抵抗运动犹太启蒙改革运动奋锐党闪米特人雅利安人

目录 “锡安主义” 贝尔福宣言 希伯来抵抗运动 犹太启蒙改革运动 奋锐党 闪米特人 雅利安人 “锡安主义” “锡安主义”是一种政治和民族运动,旨在支持并促进犹太人建立自己的国家并在历史上与宗教上的祖先之地——巴勒斯坦地区建立一个独立的国家。这一运动…

RHCE8 资料整理(五)

RHCE8 资料整理 第五篇 系统管理第18章 进程管理18.1 进程介绍18.2 查看进程18.3 向进程发送信号18.4 进程优先级 第19章 日志19.1 rsyslog的配置19.2 查看日志 第20章 网络时间服务器20.1 时间同步必要性20.2 配置时间服务器20.3 配置客户端 第21章 计划任务21.1 at21.2 cront…