Git的入门详细教程

news2024/11/23 1:23:00

    🏅我是默,一个在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     ( 获取最新文件 )

即可完成解决问题。

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

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

相关文章

网络原理---拿捏TCP机制原理

文章目录 确认应答机制超时重传机制连接管理机制三次握手(建立连接)三次握手的流程三次握手的状态转换 四次挥手(断开连接)四次挥手的流程四次挥手的状态转换 滑动窗口机制流量控制机制拥塞控制机制延迟应答机制捎带应答机制粘包问…

网络工程师回顾学习(第一部分)

根据书本目录,写下需要记忆的地方: 参考之前的笔记: 网络工程师回答问题_one day321的博客-CSDN博客 重构第一部分需要记忆的: 第一章:计算机网络概论 计算机网络的定义和分类:计算机网络是指将地理位…

【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退

🎯添加⽂件–场景⼀ 🎯在包含.git的⽬录下新建⼀个ReadMe⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区: • 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] … • 添加指定⽬录到暂存区,…

【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结

文章目录 项目介绍(开发背景)主要用到的技术点前端后端Ansj分词实现索引模块实现Parser类实现Index类完善Parser类优化制作索引速度 实现搜索模块实现DocSearcher类处理暂停词 项目编写过程中遇到的困难点上传部署总结 项目介绍(开发背景&…

【紫光同创国产FPGA教程】【PGC1/2KG第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGC1/2KG开发平台(盘古1K/2K) 一:盘古1K/2K开发板(紫光同创PGC…

排序算法的空间复杂度和时间复杂度

一、排序算法的时间复杂度和空间复杂度 排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O(n) O(n) O(n) O(1) 稳定 直接选择排序 O(n) O(n) O(n) O(1) 不稳定 直接插入排序 O(n) O(n) O(n) O(1) 稳定 快速排序 O(n…

node插件MongoDB(一)——MongoDB的下载和安装

文章目录 前言一、MongoDB的下载和安装1. 下载(1) 打开官网(2) 选择版本(3) 选择电脑系统和安装格式后点击下载(4) 将文件解压放到C:\Program Files文件目录下(5) 在c盘下创建文件夹(6) 启动服务端程序(7) 服务端程序启动成功效果(8) 在浏览器中输入127.0.0.1:27017查看效果&am…

linux下IO模及其特点及select

ftp实现 模拟FTP核心原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在&#xff0c…

nacos应用——占用内存过多问题解决(JVM调优初步)

问题描述 最近搞了一台1年的阿里云服务器,安装了一下常用的MySQL,Redis,rabbitmq,minio,然后有安装了一下nacos,结果一启动nacos内存占用就很高,就比较限制我继续安装其他镜像或者启动别的服务…

龙迅LT8911EXB功能概述 MIPICSI/DSI TO EDP

LT8911EXB 描述: Lontium LT8911EXB是MIPIDSI/CSI到eDP转换器,单端口MIPI接收器有1个时钟通道和4个数据通道,每个数据通道最大运行2.0Gbps,最大输入带宽为8.0Gbps。转换器解码输入MIPI RGB16/18/24/30/36bpp、YUV422 16/20/24bp…

84 柱状图中的最大的矩形(单调栈)

题目 柱状图中的最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 …

webpack的简单使用

什么是webpack(去官网看详细的API) 本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项…

ATFX汇市:欧元区9月PPI年率降幅扩大至12.4%,EURUSD反弹不够流畅

ATFX汇市:2023年9月欧元区生产者物价指数PPI同比下降12.4%,上月下降11.5%,而市场普遍预期下降12.5%,表现较差。12.4%的降幅创出PPI数据有记录以来的最低值,可见欧元区生产端的通缩形势严峻。跌幅最大的品种是能源&…

进程(3)——进程优先级与环境变量【Linux】

进程(3)——进程优先级与环境变量【Linux】 一. 进程如何在cpu中如何执行1.1进程在CPU中的特性1.2 寄存器1.2.1 进程的上下文 二. 进程优先级2.1 如何查看进程优先级2.2 修改进程的优先级2.2.1 NI值2.2.2 修改方法 三. 环境变量3.1 什么是环境变量&#…

二十、泛型(4)

本章概要 补偿擦除 创建类型的实例泛型数组 补偿擦除 因为擦除&#xff0c;我们将失去执行泛型代码中某些操作的能力。无法在运行时知道确切类型&#xff1a; //无法编译 public class Erased<T> {private final int SIZE 100;public void f(Object arg) {// error…

手机玻璃盖板为什么需要透光率检测

手机盖板&#xff0c;也称为手机壳或保护套&#xff0c;是一种用于保护手机外观和延长使用寿命的装置。它们通常由塑料、硅胶、玻璃或金属等材料制成&#xff0c;并固定在手机外壳上,其中任何一个工序出现差错&#xff0c;都有可能导致手机盖板产生缺陷&#xff0c;例如漏油、透…

维控PLC——LX1S :编程口通讯协议

文章目录 说明通讯帧通讯命令字通讯数据地址维控 LX1S通讯协议举例 说明 该协议适用于维控LX1S系列PLC&#xff0c;关于维控LX2N的协议将在后面描述。 通讯帧 通讯采用ASCII码&#xff0c;校验方式采用和校验。 请求帧格式:报文开始命令字地址&#xff08;有些无&#xff09…

热门的免费报表软件,建议收藏!

目前&#xff0c;随着企业对数据越来越重视&#xff0c;报表软件的应用越来越广泛。企业报表的需求越来越多变&#xff0c;就需要好用的免费报表软件&#xff0c;报表软件必须具备简捷、专业、灵活的特点&#xff0c;这里就给大家测评几款免费报表软件&#xff0c;供大家做参考…

机器学习模板代码(期末考试复习)自用存档

机器学习复习代码 利用sklearn实现knn import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCVdef model_selection(x_train, y_train):## 第一个是网格搜索## p是选择查找方式:1是欧…

JVM之jps虚拟机进程状态工具

jps虚拟机进程状态工具 1、jps jps&#xff1a;(JVM Process Status Tool)&#xff0c;虚拟机进程状态工具&#xff0c;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执 行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;的名称&#xff0c…