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

                                                   🎬 艳艳耶✌️:个人主页

                                                   🔥 个人专栏 :《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管理,如果是红色说明没有。

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

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

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

相关文章

12 # 手写 findIndex 方法

findIndex 的使用 findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1。 <script>var arr [1, 3, 5, 7, 8];var result arr.findIndex(function (ele, index, array) {console.log("ele----->", ele);conso…

chrome 一些详细信息查找的地方

可以获得chrome 信息的列表 缓存 #缓存位置# 浏览器事件

学之思项目的搭建部署 打jar包失败的解决方法

学之思系统介绍部署java环境安装maven安装node.js前端打包工具命令npmGit命令获取源代码安装配置mysql前端打包打包jar包服务上线!!!打jar包失败的解决方法 学之思系统介绍 学之思开源考试系统是一款 java vue 的前后端不分离的考试系统。主要优点是开发、部署简单快捷、界面…

Git使用规范指南

文章目录 Git使用规范指南前言分支命名规范分支合并流程规范提交信息规范Angular提交规范注意事项 通用Git忽略文件配置 Git使用规范指南 前言 由于最近写完代码之后&#xff0c;Git使用不规范被领导说了&#xff0c;所以最近通过阅读大量的相关博客快速学习Git使用规范&#…

中睿天下荣获2023全国智能驾驶测试赛车联网安全比赛第一名

9月24日&#xff0c;由工业和信息化部、公安部、交通运输部、中国科学技术协会、北京市人民政府共同主办的2023世界智能网联汽车大会展览会在北京闭幕。同期举行的全国智能驾驶测试赛&#xff08;京津冀赛区&#xff09;宣布比赛结果&#xff0c;中睿天下凭借过硬的产品实力&am…

JAVA代码视频转GIF(亲测有效)

1.说明 本次使用的是JAVA代码视频转GIF&#xff0c;maven如下&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…

如何通过对话式机器人流程自动化 (CRPA),改善客户服务?

对话式机器人流程自动化&#xff08;CRPA&#xff09;系统在企业内部的应用越来越广泛&#xff0c;尤其在客户服务部门&#xff0c;其潜力得到了充分发挥。这种系统将自动化与人工智能技术的最新进步相结合&#xff0c;以提升和优化各类流程的效率。 然而&#xff0c;什么是CRP…

表象变换与矩阵元

表象变换 一维粒子哈密顿量 表象中的矩阵元 态的表象变换 不难证明 算符的表象变换 坐标表象 Non-denumerable basis

【C++】特殊类实现——设计一个类、不能被拷贝、只能在堆上创建对象、只能在栈上创建对象、不能被继承、单例模式、饿汉模式、懒汉模式

文章目录 C特殊类实现1.设计一个类、不能被拷贝2.设计一个类、只能在堆上创建对象3.设计一个类、只能在栈上创建对象4.设计一个类、不能被继承5.设计一个类&#xff0c;只能创建一个对象(单例模式)5.1饿汉模式5.2懒汉模式 C 特殊类实现 1.设计一个类、不能被拷贝 在C中&#x…

谷歌桌面布局修改

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…

STK 根据六根数文件导出星下点(二)

利用给定的六根数数据&#xff0c;生成星下点数据 首先在STK中建立卫星对象 建立成功后&#xff0c;在Satellite1中设置Properties ,输入六根数数据 使用如下参数&#xff1a; propagator&#xff08;轨道&#xff09;&#xff1a;TwoBody&#xff08;开普勒&#xff09; st…

前端食堂技术周刊第 103 期:10 月登陆 Web 平台的新功能、TS 5.3 RC、React 2023 状态、高并发的哲学原理、Web 资源加载优先级

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;夏梦玫珑 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看下…

如何在CPU上进行高效大语言模型推理

大语言模型&#xff08;LLMs&#xff09;已经在广泛的任务中展示出了令人瞩目的表现和巨大的发展潜力。然而&#xff0c;由于这些模型的参数量异常庞大&#xff0c;使得它们的部署变得相当具有挑战性&#xff0c;这不仅需要有足够大的内存空间&#xff0c;还需要有高速的内存传…

Stable Diffusion webui 源码调试(二)

Stable Diffusion webui 源码调试&#xff08;二&#xff09; 个人模型主页&#xff1a;LibLibai stable-diffusion-webui 版本&#xff1a;v1.4.1 内容更新随机&#xff0c;看心情调试代码~ 分析StableDiffusionProcessingTxt2Img类中的sample函数 Sampler /work/stable-d…

threejs(11)-精通着色器编程(难点)1

一、初识着色器语言 GLSL 代表 openGL Shading Language&#xff0c;它是着色器程序的特定标准&#xff0c;您将在接下来的章节中看到。根据硬件和操作系统&#xff0c;还有其他类型的着色器。在这里&#xff0c;我们将使用由Khronos Group监管的 openGL 规范。了解 OpenGL 的…

百度上线“文心一言”付费版本,AI聊天机器人市场竞争加剧

原创 | 文 BFT机器人 百度不愧是我国AI技术领域的先行者&#xff0c;每年致力于人工智能领域取得技术产品的突破和创新。据爆料称&#xff0c;百度的文心一言有突破了新境界&#xff0c;开创了文心大模型4.0会员版本。从线上的to C产品到试水商业化&#xff0c;百度都是争先走…

JavaEE平台技术——MyBatis

JavaEE平台技术——MyBatis 1. 对象关系映射框架——Hibernate、MyBatis2. 对象关系模型映射3. MyBatis的实现机制4. MyBatis的XML定义5. Spring事务 在观看这个之前&#xff0c;大家请查阅前序内容。 &#x1f600;JavaEE的渊源 &#x1f600;&#x1f600;JavaEE平台技术——…

互联网金融P2P主业务场景自动化测试

互联网金融P2P行业&#xff0c;近三年来发展迅速&#xff0c;如火如荼。 据不完全统计&#xff0c;全国有3000的企业。 “互联网”企业&#xff0c;几乎每天都会碰到一些奇奇怪怪的bug&#xff0c;作为在互联网企业工作的测试人员&#xff0c;风险和压力都巨大。那么我们如何降…

数据的读取和保存-MATLAB

1 序言 在进行数据处理时&#xff0c;经常需要写代码对保存在文件中的数据进行读取→处理→保存的操作&#xff0c;流程图如下&#xff1a; 笔者每次在进行上述操作时&#xff0c;都需要百度如何“选中目标文件”以及如何“将处理好的数据保存到目标文件中”&#xff0c;对这一…

渗透测试学习day3

文章目录 靶机&#xff1a;DancingTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8 靶机&#xff1a;RedeemerTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8Task 9Task 10Task 11 靶机&#xff1a;AppointmentTask 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8Task 9T…