git_No.1_版本管控的全流程

news2024/11/25 12:53:11

文章目录

  • 1.获取Git仓库
    • 1.1 已存在目录中初始化仓库
    • 1.2 克隆一个仓库
  • 2. 将变更提交到仓库
    • 2.1 查看当前文件状态
    • 2.2 跟踪新文件
    • 2.3 暂存已修改的文件
    • 2.4 忽略文件
    • 2.5 查看已暂存和未暂存的修改
    • 2.6 提交更新
    • 2.7 跳过使用暂存区
    • 2.8 移除文件
  • 3. 查看提交历史
  • 4.远程仓库
    • 4.1 查看远程仓库
    • 4.2 添加远程仓库
    • 4.3 从远程仓库中抓取与拉取
    • 4.4 推送到远程仓库
    • 4.5 查看某个远程仓库
    • 4.6 远程仓库的重命名与移除
  • 5. 打标签
    • 5.1 列出标签
    • 5.2 创建标签
      • 5.2.1 附注标签
      • 5.2.2 轻量标签
      • 5.2.3 给历史推送打标签
    • 5.3 共享标签
    • 5.4 删除标签
  • 6. Git别名

1.获取Git仓库

1.1 已存在目录中初始化仓库

如果想对某个目录下的文件进行版本控制,可以利用git来进行版本控制。
操作步骤1
进入需要版本控制的目录下

cd /test

操作步骤2:
初始化仓库

git init

在执行完git init后,目录下会产生一个.git的子目录,该目录中记录着git仓库中所有的文件。
在这里插入图片描述

1.2 克隆一个仓库

克隆一个仓库就是将一个远程仓库中某个仓库的全部信息(文件信息和版本信息)拷贝到本地。
HTTPS协议方式
在GitHub远程仓库中获取某个仓库的Https协议的方式。
在这里插入图片描述

git clone https://github.com/vuejs/awesome-vue.git

克隆完成后结果:
在这里插入图片描述
此时就会在目录下创建,以相应仓库名称命名的文件夹,该文件夹下保存了仓库的所有信息。
在这里插入图片描述
如果本地仓库的名称和克隆仓库的名称不同,可以通过git clone url name方式自定义本地仓库名称。
在这里插入图片描述
在这里插入图片描述

2. 将变更提交到仓库

Git中文件状态变化周期如下:
未追踪状态:表示没有添加进仓库进行追踪的文件。
未修改状态:表示已经添加至仓库中,且没有进行修改的文件。
修改状态:表示已经添加至仓库中,且已经修改过的文件。
暂存状态:表示已经添加至本地仓库,但是没有提交的文件。
在这里插入图片描述

2.1 查看当前文件状态

git status命令用来查看文件的状态。
这种提示表示,所有已跟踪文件在上次提交后都未被修改,且没有出现任何处于未跟踪状态的新文件。
在这里插入图片描述
git status -s或者git status --short命令表示以简短的形式查看文件的状态。

2.2 跟踪新文件

git add filename命令用来跟踪filename这个文件名,其中filename可以*通配符表示多个字符。当filename为文件时,表示追踪该文件,当filename为文件夹时,表示追踪该文件夹下所有文件。
git add *表示添加所有文件。

2.3 暂存已修改的文件

git add指令是一个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。

2.4 忽略文件

表示忽略追踪哪些文件。通常是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
创建.gitignore文件,每一行中填写需要忽略的文件名称的正则表达式。
文件.gitignore的格式规范如下:

  • 所有空行或以#开头的行都会被Git忽略
  • 可以使用标准的glob模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以/开头防止递归
  • 匹配模式可以以/结尾指定目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号!取反。
    glob模式是指shell所使用的简化了的正则表达式:
  • *匹配零个或多个任意字符
  • [abc]匹配任何一个列在方括号中的字符
  • ?只匹配一个任意字符
  • 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。
  • 使用**表示匹配任意中间目录。
# 忽略所有的.a文件
.a
# 跟踪所有的lib.a,即便你在前面忽略了.a文件
!lib.a
# 只忽略当前目录下的TODO文件,而不忽略subdir/TODO
/TODO
# 忽略任何目录下名为build的文件夹
build/
# 忽略doc/notes.txt, 但不忽略doc/server/arch.txt
doc/*.txt
# 忽略doc/目录及其所有子目录下的.pdf文件
doc/**/*.pdf

2.5 查看已暂存和未暂存的修改

git diff表示查看尚未暂存的文件更新了哪些部分。比较的是工作目录中当前文件和暂存区域快照之间的差异。也就是修改之后还没有暂存起来的变化内容。

git diff --staged表示查看已暂存的将要添加到下一次提交里的内容,对比已暂存文件与最后一次提交的文件差异。

2.6 提交更新

git commit命令用来将已经暂存的文件提交。
在提交更新之前,需要确认还有什么已修改或新建的文件还没有git add过,否则提交的时候不会记录这些尚未暂存的变化。这些已修改但未暂存的文件只会保留在本地磁盘。
git commit -m "commits"命令用来在提交暂存文件时,提交相应的注释信息。

2.7 跳过使用暂存区

git commit -a -m "comments"命令用来自动把所有已经跟踪过的文件暂存起来一并提交。
新建的文件无法被提交!

2.8 移除文件

要从Git中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区移除),然后提交。
git rm filename命令用来从删除指定的文件,并从git暂存区中移除相应的文件。
如果要删除之前修改过或已经放在暂存区的文件,则必须使用强制删除选项-f。
在这里插入图片描述
git rm --cached filename命令表示将filename从暂存区中移除,但是不删除本地磁盘中文件。

3. 查看提交历史

git log命令用来查看提交历史信息。
git log -p -n命令用来查看每次提交所引入的差异,-n表示显示最近n次的差异

4.远程仓库

4.1 查看远程仓库

git remote -v命令显示需要读写远程仓库使用的git保存的简写与其对应的url。
在这里插入图片描述

4.2 添加远程仓库

git remote add <shortname> <url>命令用来添加一个url的远程仓库,并将其命名为shortname。

4.3 从远程仓库中抓取与拉取

git fetch <remote>命令会访问远程仓库,并拉取所有你还没有的数据。执行完后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
git fetch命令只会将数据下载到你的本地仓库–它并不会自动合并或修改你当前的工作。当准备好时你必须手动将其合并入你的工作。
git pull命令会自动抓取后合并该远程分支到当前分支。

4.4 推送到远程仓库

git push <remote> <branch>命令用来将branch分支的内容推送到remote远程仓库中。
该命令只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
当和其他人共同合作时,通常需要先抓取他们的工作,并将其合并进你的工作后才能推送。

4.5 查看某个远程仓库

git remote show <remote>查看某一个远测仓库的更多信息。

4.6 远程仓库的重命名与移除

git remote rename oldname newname命令用来将oldname的远程仓库别名修改为newname。这个操作,同样会修改该远程仓库分支的名称.
git remote remove name命令用来移除别名为name的远程仓库。

5. 打标签

Git可以给仓库历史中的某一个提交打上标签,以示重要。

5.1 列出标签

git tag命令用来列出已有的标签。
git tag -l <name>命令用来列出满足name规则名称的标签名称。

5.2 创建标签

5.2.1 附注标签

存储在Git数据库中的一个完整对象,它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间和标签信息,并可以使用GPG签名验证。
git tag -a <tagname> -m <comments>命令用来添加一个tagname的标签,并指定了一条将会存储在标签中的信息comments。
git show <tagname>命令用来查看标签信息和与之对应的提交信息。

5.2.2 轻量标签

轻量标签像一个不会改变的分支–它只是某个特定提交的引用。
git tag <tagname>命令用来添加一个轻量标签。轻量标签本质上是将提交校验和存储到一个文件中,没有保存任何其他信息。

5.2.3 给历史推送打标签

git tag -a <tagname> <commit hash>其中commit hash表示历史中提交的版本的hash值。
在这里插入图片描述

5.3 共享标签

git push <remote name> <tagname>命令表示将tagname共享到remote name仓库中。
git push <remote name> --tags命令表示将多个tagname共享到remote name仓库中。

5.4 删除标签

删除本地仓库上的标签。
git tag -d <tagname>命令用来删除本地仓库中tagname的标签。
git push <remote> :refs/tags/<tagname>命令用来更新远程仓库的标签。
git push <remote> --delete <tagname>命令同样用来删除远程仓库的标签。

6. Git别名

就是用自定已的命令名称来代替一些git默认的命令。
git config --global alias.<aliasname> <origin order>命令用来表示用aliasname命令代替origin order命令。

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

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

相关文章

HTTP介绍

目录 1.什么是HTTP&#xff1f; 2.HTTP的特点 3.HTTP的优点和缺点 4.HTTP请求数据格式 5.HTTP响应数据格式 6.GET请求和POST请求的区别 7.状态码分类说明 8.查看发送的请求数据包方式 1.什么是HTTP&#xff1f; Hyper Text Transfer Protocol,超文本传输协议&#xff…

[036]基于Vue+Nodejs的网上作业批改系统(含源码、数据库、万字课设报告)

文章目录一、项目介绍二、源码获取一、项目介绍 网络作业提交与批改系统&#xff1a;超强的作业批改项目&#xff0c;技术栈是VueNodeMysql&#xff0c;最重要的是有超详细的万字报告&#xff0c;一劳永逸&#xff0c;可冲~ 主要功能介绍&#xff1a; 1.管理员功能模块 管理员…

分享几个宝藏微信小程序

1.有数鸟&#xff1a;了解会员在各平台的消费明细 平时我们看视频听音乐&#xff0c;我们用的很多vip&#xff0c;你还记得你注册了哪些应用吗&#xff1f;有了这个小程序&#xff0c;就可以帮你记录每个平台的付款详情&#xff0c;以及总支出。 当我们添加会员项目时&#xff…

基于java+springboot+mybatis+vue+mysql的乒乓球预约管理系统

项目介绍 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;乒乓球馆预约管理系统 也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变…

基于C+++FLTK实现(WinForm)超市收银系统【100010032】

超市收银系统 Supermarket POS system 本次大作业是利用 C语言&#xff0c;基于 FLTK 图形库来设计超市收银系统。首先介绍程序的设计思想&#xff1a; 这套程序完全是基于题目所给的要求逐条逐步设计的。我把程序实现大致分为数据层面和图形层面。 数据层面&#xff1a; 程…

抖音视频怎么拼接?分享一款功能强大的软件

抖音视频怎么拼接&#xff1f;利用软件就很方便&#xff0c;所以抖音视频拼接可以通过操作简单的视频软件来辅助比较简单。就比如万兴喵影&#xff0c;就是一款操作简单、功能齐全的视频编辑器&#xff0c;很适合新手小白和半专业人士。 用万兴喵影做视频拼接&#xff0c;只需要…

扩散模型类似的方式训练text_to_text可不可以

🍿*★,*:.☆欢迎您/$:*.★* 🍿 正文 # 使用 64*64 图 写入 16号字体 16个字 # 每组数据 的 文字 是连续的 # 三张图组成一个训练 # 至少48 个字符训练一次 # 选择好自己的文本数据集

Springboot整合Netty,自定义协议实现

Springboot整合Netty&#xff0c;自定义协议实现 Springboot整合Netty 新建springboot项目&#xff0c;并在项目以来中导入netty包&#xff0c;用fastjson包处理jsonStr。 <!-- netty --><dependency><groupId>io.netty</groupId><artifactId>…

Unity物理系统-物理材质-Collider碰撞体的弹力不够大如何处理

物理材质Physic Material&#xff1b; 当碰撞器发生碰撞的时候&#xff0c;具有该材质的游戏物体就会具有该材质的属性&#xff1b; Step1&#xff1a;在Project窗口下新建Physic Material&#xff08;命名为mat&#xff09;&#xff0c;并更改其弹力参数为1 Step2&#xff1a…

408 考研《操作系统》第二章第七节:死锁和死锁的三种处理策略(预防死锁、避免死锁、检测和解除)

文章目录1.死锁1.1 什么是死锁&#xff1f;1.2 死锁、饥饿、死循环的区别1.3 死锁产生的必要条件1.4 什么时候会发生死锁&#xff1f;1.6 总结2. 死锁的处理策略——预防死锁2.1 破坏互斥条件2.2 破坏不剥夺条件2.3 破坏请求和保持条件2.4 破坏循环等待条件2.5 总结3. 死锁的处…

chatgpt+mirai实现QQ机器人

chatGPTbot 配合mirai机器使用 安装 Java &#xff08;版本必须 > 11&#xff09; 下载Mirai 控制台 https://github.com/iTXTech/mirai-console-loader/releases 手动安装插件mirai-api-http 1.双击mcl.cmd 或./mcl 运行 Mirai Console 生成 plugins 文件夹 2.从 ht…

Android基于开源项目搭建自己的技术堆栈

一、app的整体架构 从较高的层次讲&#xff0c;一个APP的整体架构可以分为两层&#xff0c;即应用层和基础框架层。 1、应用层专注于行业领域的实现&#xff0c;如金融、支付、地图、社交等&#xff0c;它直接面向用户&#xff0c;是用户对产品的第一层感知。 2、基础框架层…

从安装过程品国产Linux操作系统的技术来源与异同之处

作者&#xff1a;IT圈黎俊杰 使用Linux操作系统的第一步无疑是安装&#xff0c;本文通过作者亲手对多个国外主流开源操作系统、多个主流国产操作系统的安装过程进行记录与对比&#xff0c;让大家可以借助安装过程的界面风格、页面布局、功能等&#xff0c;细细的品一下国产Linu…

Unity3D教程:简单的碰撞检测

需求&#xff1a;当立方体Cube碰到地面Plane的时候&#xff0c;输出碰撞物体的名称&#xff0c;则表述检测到立方体碰撞了地面。 1.搭建一个简单的场景。 在新的工程中选择File->new Scene创建新的场景。然后在该场景中添加地板&#xff1a;GameObject->Create Other-&…

Mapstruct类型转换Person ->PersonDTO以及po、vo、dto、request概念

文章目录po、vo、dto、requestPerson ->PersonDTO安装插件引入依赖Maven项目结构图Person 与 PersonDTOConverterpo、vo、dto、request Mapstruct 完成类型转换&#xff01; po&#xff1a;数据持久层对象&#xff0c;用于映射数据库中的表 dto&#xff1a;数据传输对象&a…

各类软件研发行业源代码防泄密需求分析

各类软件研发行业&#xff0c;都有自己的核心数据以及核心文档&#xff0c;用户数据等敏感信息&#xff0c;这些信息数据有以下共性&#xff1a; 属于核心机密资料&#xff0c;万一泄密会给造成恶劣影响 核心数据类型多&#xff0c;有源代码数据&#xff0c;员工计算机水平高…

[附源码]Nodejs计算机毕业设计基于web的图书借阅管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

2-3查找树-树-数据结构和算法(Java)

文章目录1 概述2 查找3 插入3.1 向2-结点中插入新键3.2 向一个只含有一个3-结点的树中插入新键3.3 向一个父结点为2-结点的3-结点中插入新键3.4 向一个父结点为3-结点的3-结点中插入新键4 分析4.1 局部变换4.2 全局性质5 后记1 概述 我们前面学习过关于二叉树的算法已经能够很…

CDN工作原理以及使用CDN的好处

所有的大厂以及其他很多互联网公司都使用了CDN&#xff0c;那CDN到底是什么呢&#xff1f;为什么要使用&#xff1f;一起来看看吧&#xff01; 文章目录1. 什么是CDN&#xff1f;2. CDN 是怎么工作的&#xff1f;3. 使用 CDN 有什么好处&#xff1f;3.1 缩短网站加载时间3.2 减…

Zookeeper[2]- Zookeeper集群环境搭建

前边步骤可参考: Zookeeper[1]-Zookeeper介绍与安装以及集群环境准备_豆虫儿的博客-CSDN博客Zookeeper的介绍和安装Zookeeper客户端使用ZookeeperJavaAPI使用我们为了学习Dubbo&#xff0c;而在dubbo中需要一个注册中心&#xff0c;而Zookeeper是我们在使用Dubbo是官方推荐的…