关于Git的入门教程(附GitHub和Gitee的使用方法)

news2024/11/13 23:50:24

一. Git 概述

  • Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git易于学习、占地面积小、性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。

1.1   何为版本控制 

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。

1.2   为什么需要版本控制 

  • 从个人开发过渡到团队协作。

 1.3   版本控制工具

1.3.1   集中式版本控制工具

CVS、SVN(Subversion)、VSS……

  • 集中化的版本控制系统诸如CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。多年以来这已经成为版本控制系统的标准做法。

优缺点: 

  • 优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易。
  • 缺点:中央服务器的单点故障期间,谁都无法提交更新,也就无法协同工作。

1.3.2   分布式版本控制系统

Git、Mercurial、Bazaar、Darcs……

  • 像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
  • 分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

1.4   Git简介

1.5   Git工作机制 

  • 工作区:代码存放的磁盘的目录位置 

1.6   Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。(从本地库推送(push)到远程库)

1.6.1   局域网

        GitLab(基于局域网)

1.6.2   互联网

        Github(基于外网)

        Gitee码云(基于国内网站)

二. Git 安装

1.搜索git官网,会有最新版git下载链接Giticon-default.png?t=N7T8https://git-scm.com/

 2.点击Download for Windows,进入如下界面中点击下载(自动下载与电脑位数匹配的程序)

 3.下载之后双击安装

①GNU霸王条款,无脑同意next就行

②安装路径(最好放在没有中文且没有空格的路径里面)

 

③Git选项配置,推荐默认配置,直接next

 ④后面一直next就行了

4.如何看是否安装成功

  • 右击桌面选择显示更多选项,有下面的选择则安装成功

 三. Git 常用命令

命令名称作用
git config --global user.name   用户名设置用户签名
git config --global user.email   邮箱设置用户签名
git init初始化本地库

git status

查看本地库状态
git add   文件名添加到暂存区
git commit -m "日志信息"   文件名提交到本地库
git reflog查看历史记录
git reset --hard   版本号版本穿梭

 3.1   设置用户签名 

3.1.1   基本语法

git config --global user.name   用户名

git config --global user.email   邮箱

  1. 打开open git bash here
  2. 按照基本语法设置用户名和邮箱(实际和虚拟的皆行)
  3. 设置好了之后去c盘用户文件夹找到.gitconfig打开,显示你设置的用户名和邮箱即为成功。

 3.1.2   说明

        签名的作用是区分不同的操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。

        注意:这里设置的用户签名和邮箱与将来登录GitHub(或其他代码托管中心)的账号没有任何关系。

3.2   初始化本地库

3.2.1   基本语法

git  init

3.2.2   案例实操 

如图,初始化成功后该文件夹就会出现一个 .git 的文件夹。(如果没有,点击文件夹上方查看打开隐藏项目)

  • Windows系统有D:、C:的盘符存在,所以在文件夹中进入git bush here比较好。
  • git bash here界面里面的命令操作和Linus系统是一样的。

3.3   查看本地库状态

3.3.1   基本语法

git status

3.3.2   初次查看:工作区没有任何文件

  • On branch master  // 当前本地库位于分支master
  • No commits yet  //目前还没有提交过任何东西
  • nothing to commit   //没有东西可以提交

3.3.3   新增文件 & 再次查看状态(检测到未追踪的文件)

  • untracker files   //未被追踪的文件(只存在工作区域,git并未追踪 )
  • 使用git add去追踪文件

3.4   添加暂存区

 3.4.1   基本语法

git add name(这个name是你要添加的文件或者文件夹的名称)

3.4.2   查看状态(检测到暂存区有新文件)

文件从红色字体变成了绿色字体,说明git已经追踪(知道)了这个文件。

使用“git rm --cached 文件名”可以从暂存区删除你要删除的文件。

3.5   提交本地库

3.5.1   基本语法

git commit -m "日志信息" name(文件名)

3.5.2   查看提交(没有文件需要提交)

  • git bash窗口中第三行显示的就是你commit成功的状态,后面 test hello world 就是基本语法中的“日志信息”。

  • git bush窗口第四行提示:1个文件被改变,7行内容被插入。

3.6   修改文件

3.6.1   基本语法

  • vim name(文件名)
  • 也可以直接打开文件进行修改,不需要在 git bash here 窗口通过指令进行修改。

文件已被修改(相当于新文件),需要从工作区再次add到暂存区,并且需要commit。

3.7   历史版本(版本穿梭)

3.7.1   查看历史版本

  • git reflog   查看版本信息
  • git log   查看版本详细信息

3.7.2   版本穿梭

git reset --hard 版本号(上图中黄色的字符串就是版本号,分为详细版本号和精简版本号)

穿越之后,你的指针就指向你的穿越目标所对应的版本,并修改时从指针所指为基础开始修改。

附:cat 文件名——可以查看文件内容

四. Git分支操作 

4.1   什么是分支?

        在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个人物的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也就是指针的运用)

4.2   分支的好处

        同时并行推进多个功能开发,提高开发效率。

        各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4.3   分支的操作

兄弟盟,先点赞收藏,下周末之前一定更新结束!!!!!!

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

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

相关文章

基于DF模式的协作通信技术matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、DF概述 4.2、DF基本原理 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2013b 3.部分核心程序 clc; clear; close all; warning off; addpath(genpath(pwd))…

【C++】继承 ⑦ ( 继承中的对象模型分析 | 继承中的构造函数和析构函数 )

文章目录 一、继承中的对象模型分析1、继承代码示例2、基类与派生类内存模型3、问题引入 - 派生类对象构造函数和析构函数调用4、完整代码示例 - 派生类对象内存模型 二、继承中的构造函数和析构函数1、子类构造函数与析构函数调用顺序2、子类构造函数参数列表3、代码示例 - 继…

项目经理之如何组建跨部门项目团队

在跨组织、跨部门、跨专业的临时性合作项目中,如何组建一个高效的跨部门项目团队是确保项目成功实施的关键。本篇幅将介绍如何组建一个成功的跨部门项目团队,包括明确项目目标与范围、确定项目组织模型、明确角色与职责、合理划分团队结构、制定沟通机制…

app分发的一些流程

应用分发的流程通常包括以下步骤: 开发应用程序:首先,您需要开发您的应用程序。这包括编写代码、设计用户界面、测试应用程序等等。确保您的应用程序符合各个应用商店的规范和要求,以确保顺利通过审核。 准备应用材料&#xff1a…

操作系统——吸烟者问题(王道视频p34、课本ch6)

1.问题分析:这个问题可以看作是 可以生产多种产品的 单生产者-多消费者问题 2.代码——这里就是由于同步信号量的初值都是1,所以没有使用mutex互斥信号, 总共4个同步信号量,其中一个是 finish信号量

冲刺学习-MySQL-常见问题

MySQL索引的最左原则 联合索引的说明 建立三个字段的联合索引联合索引(a,b,c)相当于建立了索引:(a),(a,b),(a&#xff0…

【力扣刷题】二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 刷题篇 一、二叉树的中序遍历1.1 题目描述1…

分布式共识算法及落地

摘要 本文介绍常见的分布式共识算法,使用场景,以及相关已经落地了的程序或框架 1. 为什么要分布式共识算法 在分布式系统中,不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况,为了保证分布式系统中的…

【Qt】消息机制和事件

文章目录 事件event()事件过滤器案例:检测鼠标事件案例:定时器 事件 事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事…

微信小程序进阶——后台交互个人中心授权登录

目录 一、小程序登录微信登录接口演示 1.1 项目导入 1.2 method1 1.3 method2 二、小程序授权登录 2.1 登录过程 2.1.1 详解 2.1.2 图解 2.2 后端代码导入 2.3 前端代码导入 ​编辑 2.4 案例演示 前端代码如下: 2.4.1 前端调用接口地址 2.4.2 个人中…

Power BI 傻瓜入门 5. 准备数据源

本章内容将介绍: 定义Power BI支持的数据源类型探索如何在Power BI中连接和配置数据源了解选择数据源的最佳做法 现代组织有很多数据。因此,不用说,微软等企业软件供应商已经构建了数据源连接器,以帮助组织将数据导入Power BI等…

瑞萨e2studio(27)----使用EZ-CUBE3烧录

瑞萨e2studio.27--使用EZ-CUBE3烧录 概述视频教学样品申请引脚配置EZ-CUBE3 仿真器开关设置对RA族MCU进行Flash编程蓝色 LED 指示灯的状态信息 概述 EZ-CUBE3(CYRCNEZCUBE03)是具有Flash存储器编程功能的片上调试仿真器,可以用于调试MCU程序…

合同管理怎么做?套用Excel合同管理台账模板,真可以省心省力!

对于从事日常行政办公管理的人来说,最难受得就是各种合同乱糟糟,合同数据又多又杂,一不小心就会出错,而且有的合同数据到期了我们太忙也不知道,所以就很麻烦…… 想做好合同台账,其实很简单,今天…

基于stm32控制的ESP8266在设备模式下通讯

一、文章中要用的指令 指令作用ATUART115200,8,1,0,0之前的51通讯是9600,这里的321用的是115200,需要改一下波特率ATCWMODEXX是1代表station(设备)模式 ,X是2代表AP(路由)模式 ,X是…

微信小程序之个人中心授权登录

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 1.了解微信授权登录 微信登录官网: 小程序登录https://developers.weixin.qq.com/miniprogram/d…

YOLOv5源码中的参数超详细解析(2)— 配置文件yolov5s.yaml(包括源码+网络结构图)

前言:Hello大家好,我是小哥谈。配置文件yolov5s.yaml在YOLOv5模型训练过程中发挥着至关重要的作用,属于初学者必知必会的文件!在YOLOv5-6.0版本源码中,配置了5种不同大小的网络模型,分别是YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,其中YOLOv5n是网络深度和宽度最小…

5G技术的飞速发展:连接未来

随着科技的日益进步,5G通讯技术已经成为了全球科技领域的热门话题。5G,即第五代移动通信技术,带来的不仅仅是更快的网络速度,它的高带宽和低延迟特性将为未来的数字世界奠定基础。 速度与效率的飞跃: 5G技术的最大亮点是它极高的下…

App分发的策略和注意事项

当今的数字化时代中,移动应用程序已经成为了人们生活中不可或缺的一部分。随着智能手机的普及和移动互联网的快速发展,应用程序的分发方式也变得越来越多样化。 App分发是指将移动应用程序通过特定的渠道传递给终端用户的过程。在应用程序开发完成后&am…

js轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4…

OpenCV+QT实现的数字图像处理算法合集

源码下载地址: 基于OpenCV和QT的图像处理源码 图像预处理 灰度处理 灰度直方图 灰度均衡 梯度锐化 Laplace锐化 边缘检测 Roberts Sobel Laplace Prewitt canny Krisch 噪声 椒盐噪声 高斯噪声 滤波 均值滤波 中值滤波 双边滤波 形态学滤波 高斯滤波 图像变…