当前位置: 首页 > article >正文

Git工具

一.Git概述

1.1 Git的应用场景

备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。

代码还原:

Git在管理文件过程中会记录日志,方便回退到历史版本。
Git除了可以帮我们保存代码,还可以保存每次上传的痕迹,每上传一次就做一次备份,上传
3次就备份3次,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一
个版本对应的内容,这样就可以随时恢复到之前任意上传时间对应的状态了。

协同开发:

每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传
的代码下载到自己的电脑上,这样就实现了代码共享

追踪信息

Git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信
息。比如本次上传的内容,对应的说明,等等。这样出了问题就可以进行信息追踪。

1.2 Git简介

Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管
理。通过Git 仓库来存储和管理这些文件,Git 仓库分为两种:

        本地仓库:开发人员自己电脑上的 Git 仓库
        远程仓库:远程服务器上的 Git 仓库

commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库

1.3 版本控制器的方式

集中式版本控制工具

集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从
中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交
到中央版本库。例如:SVN和CVS

分布式版本控制工具

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这
样工作的时候,无需要联网了,因为版本库就在你自己的电脑上。多人协作只需要各
自的修改推送给对方,就能互相看到对方的修改了。我们使用Git并且有个中心服务
器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一
样的。例如:Git

二.Git下载与安装

下载地址:https://git-scm.com/download


双击直接安装【版本为64位系统的】

右键任意位置,在右键菜单里选择Git Bash Here即可打开Git Bash命令行终端。

在Git Bash终端里输入git --version查看git版本,如图所示,说明Git安装成功

三.Git相关概念

工作区:主要用于存放开发的代码,一个文件夹通过git init 设置成一个git可以管
理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。
版本库:就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中
HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作
区,而是 Git 的版本库。
暂存区:英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理
解为一个中转站。

四.Git本地操作命令

4.1 设置用户签名

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每
次Git提交都会使用该用户信息。在Git 命令行中执行下面命令:

设置用户信息

git config --global user.name 用户名
git config --global user.email 邮箱

查看配置信息
git config --list

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够
看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法
提交代码。
注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任
何关系。

4.2 Git本地操作-初始化工作区

        *在任意目录下创建一个空目录(例如repo1)作为我们的工作区
        *进入这个目录中,点击右键打开Git bash窗口
        *执行命令git init
        *如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明工作区创建
        成功

        *查看状态:我们在learnA目录中创建一个readme.txt文件,通过git status命令
来查看它的状态。

红色代表当前没有提交到暂存区

4.3 Git本地操作-add与commit

        *编辑readme.txt
vim 文件名—按字母i插入数据—按esc退出—按 :wq保存退出。
查看文件内容:cat 文件名

工作区提交暂存区

git add 命令的作用是将文件的修改加入暂存区,命令格式:git add fileName

这时文件变成绿色,可以提交到本地仓库

暂存区提交本地仓库

命令:git commit -m '第一次提交'
说明:-m 后面跟随的是为你提交的备注,m是单词message信息的首字母

扩展

添加多个文件 git add [file1] [file2] ...
添加指定目录到暂存区,包括子目录 git add [dir]
添加当前目录下的所有文件到暂存区,不包括被删除的文件 git add

.
4.4 Git本地操作-差异比较

使用vim命令,对readme.txt文件进行编辑,添加"第二行代码"

工作区与暂存区比较

命令:git diff readme.txt

工作区与本地库比较

命令:git diff HEAD readme.txt

暂存区与本地库比较

命令:git diff --cached readme.txt

可以第二次提交到暂存区和本地仓库,进行差异比较

4.5 Git本地操作-版本回退

当我们从暂存区提交到本地仓库时,发现当前的提交的版本有问题,希望回退到指定
版本如何操作呢?
        *使用vim命令编辑readme.txt,添加“第三行代码”,并提交到本地仓库

我们可以通过git提供的查看日志命令来查看提交的日志


命令: git log 查看当前提交日志
通过 git log 命令查看日志,可以发现每次提交都会产生一个版本号,提交时设置的
message、提交人、邮箱、提交时间等信息都会记录到日志中

可以发现,目前为止,我们已经在本地仓库中提交了3次,也就是说有3个不同版本。
其中,最近的这个版本有一个标示:HEAD-> master 这就是标记当前分支的当前版
本所在位置。

在log中,每一个版本的前面,都有一长串随即数字,这是每次提交的commit id ,
这是通过SHA1算法得到的值,Git通过这个唯一的id来区分每次提交        

git log命令存在的问题,只要版本回退之后就没法看到之前的日志了,git reflog命令
叫查看引用日志,可以看到整个过程的日志。

回退到之前版本

命令:git reset --hard HEAD^
回归到上一个版本,Git通过HEAD来判断当前所在的版本位置。那么上一个版本,就用
HEAD^标示,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过
来,所以写成HEAD~100。

我们可以在查看一下日志 git log

发现只有两个版本,我们在查看一下文件内容

查看引用日志

命令: git reflog 查看所有操作

回退到指定版本

命令:git reset --hard 版本号 回退到指定版本

查看文件内容

4.6 Git本地操作-修改撤消

当我们工作区内容想要提交到暂存区时,突然发现有问题,想要撤销该如何处理?当
我们已提交到暂存区的内容,发现出现了bug,这时又应该如何处理哪

        *编辑readme.txt添加“第四行代码”

使用git status 命令查看当前状态

在你提交到暂存区前,你突然发现这个修改是有问题的,你打算恢复到原来的样子。
怎么办?

        *撤销工作区修改

命令:git checkout 文件名称

我们撤销后,在查看文件中内容,发现工作区内容已经撤销,并查看状态,发现状态
很干净。

使用 vim 命令 编辑readme.txt添加“第五行代码”

使用git add提交文件至暂存区

        *撤销到工作区

命令:git reset HEAD readme.txt 撤销到工作区

工作区撤销

我们在查看文件,发现已经恢复到最初始样子

五.Git 分支操作

5.1 分支操作-分支介绍

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单
独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己
分支的时候,不会影响主线分支的运行。分支可以简单理解为副本,一个分支就是一
个单独的副本。

5.2 分支操作-分支创建与切换

查看分支

查看分支命令:git branch
通过git init 命令创建本地仓库时默认会创建一个master分支。

分支创建

创建分支命令格式:git branch 分支名称

分支切换

切换分支命令格式:git checkout 分支名称

编辑readme.txt,添加“我是dev提交的代码”

提交到本地库

切换到master分支,并查看文件内容

5.3 分支操作-分支合并与删除

分支合并

命令: git merge 分支名

注意:当前我们是在master分支。合并后,我们发现master分支上的readme.txt文
件内容已经改变。

分支删除

命令: git branch -d 分支名

例如:我要删除分支名为dev的分支

六.Git代码托管服务

Git中存在两种类型的仓库,即本地仓库远程仓库

本地仓库实际上是存储在个人电脑中的,用于存储个人提交记录与提交日志,说简单
点,你现在commit提交的内容都在本地。
远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日
志,团队合作开发也是靠远程仓库实现的。大家都把东西提交到同一个远程仓库里面
就OK了,这样每个人都可以获取到团队内开发的所有内容了。

6.1 常用的Git代码托管服务

名称网址说明
gitHubhttps://github.com/一个面向开源及私有软件项目的托管平
台,因为只支持Git 作为唯一的版本库
格式进行托管,故名gitHub
码云Gitee - 基于 Git 的代码托管和研发协作平台国内的一个代码托管平台,由于服务器
在国内,所以相比于GitHub,码云速度
会更快
GitLabhttps://about.gitlab.com/一个用于仓库管理系统的开源项目,使
用Git作为代码管理工具,并在此基础上
搭建起来的web服务

6.2 码云代码托管服务

码云网址:Gitee - 基于 Git 的代码托管和研发协作平台

使用码云的操作流程如下:
*注册码云账号
*登录码云
*创建远程仓库
*邀请其他用户成为仓库成员

6.3 注册码云账号

 

注册网址:注册 - Gitee.com

6.4 登录码云

注册完成后可以使用刚刚注册的邮箱进行登录(地址: 登录 - Gitee.com )

6.5 创建远程仓库

登录成功后可以创建远程仓库,操作方式如下:

页面跳转到新建仓库页面:

仓库名称:必填,每个仓库都需要有一个名称,同一个码云账号下的仓库名称不能重


路径:访问远程仓库时会使用到,一般无需手动指定,和仓库名称自动保持一致
开源:所有人都可以查看此仓库
私有:只有此仓库的成员可见,其他人不可见

        *创建完成后可以查看仓库信息:

仓库创建完毕,可以看到,如果我们要与远程仓库同步,这里支持多种通信协议,当
我们选中一种协议后,后面会出现对应的远程仓库地址

6.6 邀请其他用户成为仓库成员

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管
理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个
参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。


点击管理按钮进入仓库管理页面,左侧菜单中可以看到【仓库成员管理】:

点击【开发者】菜单,跳转到如下页面:

点击【添加仓库成员】菜单下的【邀请用户】菜单,跳转到如下页面:

可以看到邀请用户有多种方式:链接邀请、直接添加、通过仓库邀请成员
注意:被邀请用户必须为码云的注册用户,否则无法成为仓库成员

七.Git远程仓库操作

关联:

现在readme.txt已经推送到我们自己的本地仓库,在推送到码云仓库前,我们需要先
建立本地仓库与远程仓库的关系

添加远程仓库命令格式:git remote add 简称 远程仓库地址

查看
如果要查看已经配置的远程仓库服务器,可以执行 git remote 命令,它会列出每一
个远程服务器的简称。


可以通过-v参数查看远程仓库更加详细的信息


本地仓库配置的远程仓库需要一个简称,后续在和远程仓库交互时会使用到这个简称

拉取:从码云仓库拉取到本地仓库

注意:在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库

命令:git pull origin master --allow-unrelated-histories
首次拉取需要添加:--allow-unrelated-histories
命令:git pull 后续拉取

推送:本地仓库推送到码云仓库

命令: git push -u origin master 首次推送
命令: git push 后续推送

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,那么咱
们操作呢?


新建文件夹learnB,新建的文件中右键

命令: git clone 远程仓库
 

git clone(克隆) 与 git pull(拉取) 区别

1.相同点:都是从远程服务器拉取代码到本地
2.不同点:
git clone(克隆) :是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,
是一个本地从无到有的过程。
git pull(拉取) :在本地有版本库的情况下,从远程库获取最新commit 数据(如果有
的话),并merge(合并)到本地。
 

win10系统本地认证

win10系统在 控制面板---->用户帐记---->管理windows凭据 中配置上gitee的网址与
用户名密码,可以方便后续使用,不用在频繁输入用户名与密码

注意:在配置gitee的网址时,一定要在前加上git


http://www.kler.cn/a/441817.html

相关文章:

  • 65,【5】buuctf web [SUCTF 2019]Upload Labs 2
  • C++《AVL树》
  • Hnu电子电路实验2
  • 【深度学习】利用Java DL4J 训练金融投资组合模型
  • 使用 HTML 开发 Portal 页全解析
  • LLMs(大型语言模型)的多智能体:Auto-GPT
  • 【人工智能-中级】卷积神经网络(CNN)的中阶应用:从图像分类到目标检测
  • Win7上安装node.js(v18.16.0),并创建vue3项目
  • [STM32]从零开始的cube IDE安装与配置教程
  • Android AOSP 源码中批量替换“phone“为“tablet“的命令详解
  • stable diffusion学习01
  • nodeJS——Mongoose基础操作
  • SM4笔记整理
  • 深度学习之 Deep Video Super-Resolution (VSRNet)
  • 黑神话无缘TGA2024年度游戏的原因
  • Redis经典面试题
  • [免费]SpringBoot+Vue校园社团管理系统(优质版)【论文+源码+SQL脚本】
  • centos7扩容ext4文件系统类型硬盘
  • element中input框添加@keyup.enter.native,按enter后刷新页面
  • MySQL数据库备份,恢复
  • EasyExcel 动态设置表格的背景颜色和排列
  • Ubuntu 上cutecom使用指南
  • 【Mysql优化】EXPLAIN 返回列详解:深入 SQL 查询优化的工具
  • 复习打卡MySQL篇03
  • 一篇文章解决HarmonyOS开发USB调试设备连接失败
  • 【精】Linux虚拟机 Docker 配置阿里云镜像加速