Git的入门详细教程

    🏅我是默,一个在CSDN分享笔记的博主。📚📚 

​​

🌟在这里,我要推荐给大家我的专栏《git》。🎯🎯

🚀无论你是编程小白,还是有一定基础的程序员,这个专栏都能满足你的需求。我会用最简单易懂的语言,带你走进代码的世界,让你从零开始,一步步成为编程大师。🚀🏆

🌈让我们在代码的世界里畅游吧!🌈

🎁如果感觉还不错的话请记得给我点赞哦!🎁🎁

💖期待你的加入,一起学习,一起进步💖💖

一.git的简介

1.什么是git?

Git是一个免费开源的分布式版本控制系统,最初由Linus Torvalds创建,用于管理软件开发过程中的代码版本和协作。

2.Git的主要特点

  1. 分布式版本控制: 每个开发者在本地都有完整的代码仓库,可以独立工作,无需依赖中央服务器。

  2. 高效性能: Git设计上非常高效,快速执行提交、分支、合并等操作,使得大型项目也能够轻松管理。

  3. 强大的分支支持: Git鼓励频繁的分支与合并,使得并行开发变得更加容易,而且合并冲突解决相对简单。

  4. 完整性保证: Git使用SHA-1哈希算法来保证数据完整性,能够确保存储在Git仓库中的数据不会轻易被更改或丢失。

  5. 多种协议支持: Git支持多种网络协议(如SSH、HTTP、Git等)来进行远程仓库的访问和传输。

通过Git,开发者可以跟踪文件的变化、撤销修改、比较差异、合并代码以及管理项目的不同版本。它已经成为了许多软件开发团队的标准工具,并且被广泛应用于各种开源和私有项目中。

总的来说,Git是一个强大、灵活且高效的版本控制系统,为开发者提供了一套完整的工具来管理和协作开发项目的代码。

3.Git的工作流程 

Git的工作流程涉及到本地仓库和远程仓库之间的操作,一般可以描述为以下几个基本步骤:

  1. 在本地创建仓库:首先,在本地创建一个Git仓库,可以使用git init命令将一个现有的项目或者空目录初始化成一个Git仓库。

  2. 添加和提交文件:将项目中的文件添加到Git仓库。使用git add命令将要提交的更改加入到暂存区(staging area),然后使用git commit命令将这些更改提交到仓库中。

  3. 创建分支:通过git branch命令创建新的分支,然后使用git checkout命令切换到新创建的分支上。在新分支上进行开发工作可以避免影响主分支的稳定性。

  4. 合并分支:开发完成后,可以使用git merge命令将新的分支合并回主分支,这样就将新的功能整合到了主分支上。

  5. 解决冲突:在合并分支时可能会出现冲突,需要手动解决冲突后再提交合并结果。

  6. 推送到远程仓库:将本地仓库中的更改推送到远程仓库,可以使用git push命令将本地提交推送到远程仓库中。

  7. 拉取远程更改:在多人协作的情况下,可以使用git pull命令从远程仓库中拉取最新的更改到本地仓库中。

4.git和svn区别

Git和SVN(Subversion)是两种常见的版本控制系统,它们在设计理念和工作方式上有一些显著的区别:

  1. 分布式vs集中式:

    • Git是分布式版本控制系统,每个开发者都有完整的仓库副本,可以在本地独立工作,并且无需依赖中央服务器。
    • SVN是集中式版本控制系统,所有代码的历史记录都保存在中央服务器上,开发者需要从中央服务器检出代码才能进行工作。
  2. 提交与版本管理:

    • Git的提交是针对本地仓库,每个提交都会在本地生成一个快照,而分支和合并操作非常灵活。
    • SVN的提交是直接作用于中央仓库,开发者必须与中央仓库进行频繁的交互,合并操作相对复杂。
  3. 性能:

    • 由于Git是分布式的,大部分操作可以在本地快速执行,因此在性能上通常要优于SVN,尤其是在处理大型项目时。
    • SVN在处理大型文件和大型代码库时性能可能会受到影响。
  4. 分支与合并:

    • Git的分支和合并操作非常高效和灵活,因为每个本地仓库都包含完整的历史记录,可以在本地多次进行分支和合并操作。
    • SVN的分支和合并相对复杂,通常需要依赖中央服务器来完成这些操作。
  5. 安全性:

    • Git使用SHA-1哈希算法来保证数据完整性,可以确保存储在Git仓库中的数据不会轻易被更改或丢失。
    • SVN使用增量文件系统,对数据完整性的保护没有Git那么强大。

总体而言,Git更适合于需要高度灵活性、分布式协作以及对性能要求较高的项目;而SVN在传统的集中式项目管理和版本控制方面有其优势。随着开源社区的不断发展,Git已经成为了大多数项目的首选版本控制系统。

二.Git安装 

1.注册用户来使用Git

工作台 - Gitee.comicon-default.png?t=N7T8https://gitee.com/

2.下载git

​​​​​​Git - Downloading Package (git-scm.com)icon-default.png?t=N7T8https://git-scm.com/download/win

3.具体的安装流程

接下来一路next即可,就是安装成功

三.git常用命令

1.搭建开发环境,将项目部署到Gitee

 

简易的命令行入门教程:

Git 全局设置:

git config --global user.name "mo"
git config --global user.email "3500858957@qq.com"

在C盘的用户下面

创建 git 仓库:

mkdir ssm
cd ssm
git init 

touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/zxsssssss/ssm.git
git push -u origin "master"

已有仓库?

cd existing_git_repo
git remote add origin https://gitee.com/zxsssssss/ssm.git
git push -u origin "master"

2.团队开发  

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

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

然后通过查看 状态 以及 加载项目

3. 搭建项目环境

将项目的文件夹复制到Git工作区间,再将这个项目给Git管理,并且仓库状态。

git add .  这个命令是将该文件夹下所有文件给Git管理,

 将项目上传到本地,并且给与备注,再将项目上传到远程仓库。

在Gitee的仓库中就可以看到了

 4. 团队开发

项目已经在远程仓库部署好了,现在比如 : 开发团队中其他人需要获取其中的项目。

在这个需要获取其中项目的人中的工作区间,一样的,先点击Git Bash Here ,打开命令窗口。

在命令窗口中输入克隆远程仓库中使用文件的命令 : 

git clone  https://gitee.com/mo/ssm.git

上面的网址是远程仓库的地址,在右上角有克隆的网址,谁需要就复制给谁即可,再加上

命令执行即可拿到所有的文件。

执行完成之后可以进入目录中查看到所有的文件。

在团队开发中,可以会有版本或者修改同一地方的修改,之后一人已经上传到远程,另一个人再生成到远程的话,就会出现以下错误 :

遇到这个问题呢,两人都需要先获取到最新的远程仓库中的文件

获取最新文件命令 : git pull

都输入该命令后,再查看相同地方的修改是否有问题,比如版本问题

如图 : 

  

可以看到修改的版本出现了两个5.0.3和5.0.5,比如经过双方的商量,两个版本都需要留下

只需要一人将其中的代码修改为如图 : 

将其中多余的符号删除掉就好,如何输入命令给git管理,并且将上传到本地仓库,再上传到远程仓库

最后双方都输入命令 : git pull     ( 获取最新文件 )

即可完成解决问题。

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

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

相关文章

企业级,搭建接口自动化测试框架思路分析,8年测试老鸟整理...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在选择接口测试自…

Vue3 学习笔记

vue3 官网:简介 | Vue.js (vuejs.org) 1. 环境搭建与启动 npm create vuelatest 这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具 之后,你将会看到一些诸如 TypeScript 和测试支持之类的可选功能提示: ✔ …

学习笔记|SPSS|描述变量|按照3倍标准差剔除异常值|标准化值另存为变量|剔除个案|Zscore|箱图|Zscore取值范围

目录 学习目的软件版本原始文档概述服从正态分布-按照3倍标准差剔除异常值读数据数据概览描述变量 正态性检验异常值检验及剔除 非正态分布-根据Zscore取值范围确定基础数据数据概览正态性检验Tips:箱图圆圈的含义 异常值检验及剔除描述变量,并将标准化值…

C语言C位出道心法(三):共用体|枚举

C语言C位出道心法(一):基础语法 C语言C位出道心法(二):结构体|结构体指针|链表 一: C语言共用体数据类型认知 二:C语言枚举基本数据类型认知 忙着去耍帅,后期补充完整.............

Verilog刷题[hdlbits] :Alwaysblock2

题目:Alwaysblock2 For hardware synthesis, there are two types of always blocks that are relevant: 对于硬件综合,有两种相关的always块: Combinational: always () 组合型:always ()Clocked: always (posedge clk) 时钟型…

Python实现图片与PDF互相转换

目录 图片转PDF文件夹所有图片转为1个PDF文件夹指定图片转为1个PDF文件夹所有图片分别转为PDF举例 PDF转图片指定PDF转为图片文件夹所有PDF转为图片举例 图片转PDF 之前的一篇博客《Python合并拼接图片》,可对图片进行合并拼接 使用前需要安装PyMuPDF库&#xff0c…

设置区块链节点输出等级为警告级,并把日志存储阈值位100MB并验证;

题目 获取指定区块链节点输出等级为警告级,并设置日志存储阈值位100MB并验证; 操作步骤 1.切换目录 cd nodes/127.0.0.1/node0 2.打开配置文件并修改 vim config.ini warn:警告

力扣最热一百题——每日温度

Python后面的文章,内容都比较多,但是同时我又想保持每天更新的速度,所以Python的文章我继续打磨打磨,先更新一篇算法的文章。 一身正气报国家,旁无乱境不恋她 ヾ(◍∇◍)ノ゙ 力扣题号&#xff1a…

大语言模型比武

今年随着 ChatGPT 的流行,并在各个领域有一定程度生产级别的应用。国内外也掀起了一股大语言模型浪潮,各大厂商都推出了自己的大语言模型,阿里推出了 通义千问,腾讯推出了 Hunyuan,亚马逊云推出了 Titan,大…

微服务-grpc-consul-protoBuf-micro

微服务 一、微服务(microservices) 近几年,微服这个词闯入了我们的视线范围。在百度与谷歌中随便搜一搜也有几千万条的结果。那么,什么是微服务 呢?微服务的概念是怎么产生的呢? 我们就来了解一下Go语言与微服务的千丝…

C++ 断言

1.断言的概念 断言(assertion)是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判别式放在语句中,用于排除在设计的逻辑上不应该产生的情况。比如一个函数总需要输人在一定的范围内的参数,那么程序员就可以对该参数…

汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)

1 数据对象的创建 CtrlH打开Model Explorer,在Base workspace中点击工具栏add,出现如下界面, 可以看到Simulink提供了多种数据类型 Matlab Variable:Simulink.Parameter:使用该数据对象表示工程应用中的标定量Simuli…

CSS 渐变、文本效果、字体

一、CSS3渐变: CSS3渐变(gradient)可以在两个或多个指定的颜色之间显示平稳的过渡。CSS3定义了两种类型的渐变(gradient):线性渐变(linear gradient)-向下/向上/向左/向右/对角方向…

MySQL–第4关:查询用户日活数及支付金额

MySQL–第4关:查询用户日活数及支付金额 – WhiteNights Site 标签:MySQL 非常好的题,爱来自中国。 题目 没啥用 任务描述 现有3张业务表,详见如下: 需要输出结果如下,没有支付的日期不需要显示,请写出对…

设计模式——建造者模式

目录 建造者模式盖房项目需求基本介绍四个角色实例代码注意事项和细节抽象工厂模式 VS 建造者模式 建造者模式 盖房项目需求 传统方式:打地基,砌墙,封顶 盖房子步骤 public abstract class AbstractHouse {// 地基public abstract void b…

【小白专用】PHP中的JSON转换操作指南 23.11.06

一、JSON的基础知识 1.1JSON数据格式 JSON数据格式是一组键值对的集合,通过逗号分隔。键值对由“键”和“值”组成,中间使用冒号分隔。JSON数据格式可以嵌套,而且可以使用数组 二、PHP中的JSON函数 JSON的操作需要使用编程语言进行处理&am…

软考软件设计师刷题笔记整理

软件设计师 HTML代码中,创建指向邮箱地址的链接正确的是ARP攻击造成网络无法跨网段通信的原因是在软件开发过程中进行风险分析关于哈夫曼树的叙述关于风险管理的叙述ISO/IEC9126软件质量模型关于结构化开发方法的叙述分布式数据库中的分片透明、复制透明、位置透明和…

day61--单调栈2

503.下一个更大元素II 42. 接雨水 第一题:下一个更大元素2 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之…

前端工程化(vue2)

一、环境准备 1.依赖环境:NodeJS 官网:Node.js 2.脚手架:Vue-cli 参考网址:安装 | Vue CLI 介绍:Vue-cli用于快速的生成一个Vue的项目模板。主要功能有:统一的目录结构,本地调试&#xff0…

小程序day04

目标 自定义组件 创建组件 引用组件 局部引用 全局引用 组件的函数定义到metods节点中,梦回vue2. 样式 数据,方法,属性 下划线开头的称为自定义方法,非下划线开头的都是事件处理函数。 神特么,this.datathis.pro…