【书籍篇】Git 学习指南(二)提交与多次提交

Git 学习指南(二)提交与多次提交

  • 三. 提交
    • 3.1 访问权限与时间戳
    • 3.2 add与commit
    • 3.3 再谈提交散列值
    • 3.4 提交历史
    • 3.5 略有不同的提交查看方法
    • 3.6 同一项目的多部不同历史
  • 四. 多次提交
    • 4.1 status命令
      • 4.1.1 选择性修改
    • 4.2 存储在暂存区中的快照
    • 4.3 怎样的修改不该被提交
    • 4.4 用.gitgnore忽略非版本控制文件
    • 4.5 储藏


读前须知: 本篇章内容取自《Git 学习指南》 P18~P32,如需更多详细内容请购买正版书籍
上一章节: 【书籍篇】Git 学习指南(一)基础概念及入门
下一章节:


三. 提交


使用 git log --stat -1 命令来看一下提交中究竟包含了哪些重要信息

commit: 散列值

Author: 作者相关信息

Date: 提交被创建的日期

​ 提交时的注释信息

说明的是哪些文件自上一版本以来发生了变化


$ git log --stat -1
commit 3d681ecb56db44fc6f31c927140049fbfe24c32f (HEAD -> master)
Author: jieKaMi <l>
Date:   Tue Nov 21 00:17:43 2023 +0800six commitdev.txt | 2 +-1 file changed, 1 insertion(+), 1 deletion(-)

3.1 访问权限与时间戳


(1)Git会保存每个文件原有的访问权限(即POSIX文件权限,包含读、写、执行),但不会保留文件的修改时间。因此在执行检出操作时,文件的修改时间会被设置为当前时间

(2)我们进行一次新的建构过程,由于GIT在进行检出操作时总是用当前时间来充当文件的修改时间,所以就能确保这些工具正确,顺畅地完成整个构建过程。


3.2 add与commit


操作:(1)在原版库中做一些修改 (2)将所有修改纳入下次提交 (3)提交


$ cd /f/git-dev/
$ git add --all
$ git commit --message "add -all"
[master 45299b3] add -all2 files changed, 2 insertions(+), 1 deletion(-)create mode 100644 test.txt

3.3 再谈提交散列值


使用散列值的好处:

(1)可以本地生成,无需与其他计算机或中央服务器进行通信就可以创建新的提交

(2)根据文件内容及其元数据(作者、提交时间)计算出来的散列值相同的概论非常低

(3)散列值的信息比一个软件版本的名称要多得多

可以使用过 git fsck [散列值] 命令来查看版本库的完整性([散列值]可以用git log --oneline里的简单信息代替)


3.4 提交历史

3.5 略有不同的提交查看方法

命令描述
git diff [散列值] HEAD完整的差异清单
git diff [散列值] ^!与上一次提交进行比较
git diff [散列值] [散列值] – [path]限制文件范围
git diff --stat [散列值] [散列值]显示每个文件中的修改数量

3.6 同一项目的多部不同历史

命令描述
git log简单的日志输出
git log -n 3部分输出,只显示该项目的最后三次提交
git log --oneline概述信息
git log --format=fuller更多细节
git log --stat显示被修改的那些文件
git log --shortstat显示保护被修改的文件的目录
git log --graph显示个提交之间的关系

四. 多次提交


(1)使用add命令将所有相关的修改纳入到一个 缓存区(buffer)

(2)使用commit命令将缓存区中的修改传送到版本库中


4.1 status命令


操作: (1)修改dev.txt并add该文件(2)删除prod.txt、新增test.txt (3)执行git status

解析

(1)Changes to be committed: 列出那些将在下次提交被纳入版本库中、被修改的文件

(2)Changes not staged for commit: 列出已经被修改,但尚未被注册到下次提交的文件 (与书中有点差异)

(3)Untracked files: 列出所有新增的文件


$ git status
On branch master
Changes to be committed:(use "git reset HEAD <file>..." to unstage)modified:   dev.txtChanges not staged for commit:(use "git add/rm <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)deleted:    prod.txtUntracked files:(use "git add <file>..." to include in what will be committed)test.txt

4.1.1 选择性修改

略。。。详细内容《Git 学习指南》 P27

4.2 存储在暂存区中的快照

略。。。详细内容《Git 学习指南》 P28~P29

4.3 怎样的修改不该被提交


不想提交的修改:(1)为调试而做的实验性修改(2)意外添加的修改(3)尚未准备好的修改(4)自动生成的文件中所发生的修改

解决方案:

(1)使用reset命令重置那些实验性的或者被意外修改的内容

(2)将我们不希望被提交的忽略文件列表写入.gitgnore

(3)是由stash命令将我们希望日后再提交的修改内容暂时保存起来


4.4 用.gitgnore忽略非版本控制文件


(1)支持使用 * 和 &等通配符

(2)只能影响非交由Git来管理的软件,统一通过update-index命令的–assume-unchangde来忽略已经被版本化的文件


4.5 储藏

命令描述
git stash将工作区和缓存区中的修改保存在一个被我们称之为储藏栈的缓存区中
git stash pop恢复位于栈顶的被储藏修改
git stash list查询当前储藏了什么修改内容
git stash pop stash@{0}恢复指定储藏内容

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

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

相关文章

智能座舱架构与芯片- (11) 软件篇 上

一、智能汽车基础软件平台分类 汽车软件主要分为应用软件和基础软件。应用软件和业务形态高度关联&#xff0c;不同控制器的应用软件之间差异较大。基础软件介于应用软件和硬件之间&#xff0c;用于屏蔽硬件特性、支撑应用软件。可有效地实现应用软件与硬件之间解耦&#xff0…

ky10 server x86 安装、更新openssl3.1.4(在线编译安装、离线安装)

查看openssl版本 openssl version 离线编译安装升级 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzech…

【Python】学习Python面向对象编程的疑问

&#xff08;Java菜鸟来学Python了&#xff09; &#x1f914; 1. 静态方法与类方法什么区别&#xff1f; 实例方法只能被实例对象调用(Python3 中&#xff0c;如果类调用实例方法&#xff0c;需要显示的传self, 也就是实例对象自己)&#xff0c;静态方法(由staticmethod装饰…

LangChain 6根据图片生成推广文案HuggingFace中的image-caption模型

根据图片生成推广文案&#xff0c; 用的HuggingFace中的image-caption模型 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数…

STM32 寄存器配置笔记——系统时钟配置 HSE as PLL

一、概述 本文主要介绍使用HSE高速外部时钟通过PLL倍频输出72MHZ的时钟作为系统时钟。下图为时钟树。 使用正点原子的开发板调试OSC_IN、OSC_OUT接的是8MHZ的晶振即为HSE时钟。 二、配置流程 1&#xff09;复位RCC相关的所有寄存器 复位内容是参考正点原子例程&#xff0c;按照…

云计算:开辟数字时代的无限可能

云计算是一项革命性的技术&#xff0c;为企业和个人提供了灵活、可扩展和高效的计算资源。本文将介绍云计算的概念、架构和优势&#xff0c;并探讨其在数字化时代的重要性和未来发展趋势。 引言 随着信息技术的日新月异和数字化转型的浪潮席卷全球&#xff0c;云计算作为一种颠…

深入Tailwind CSS中的文本样式

深入Tailwind CSS中的文本样式 样式文本是网页设计的一个基本组成部分&#xff0c;而 Tailwind CSS 提供了范围广泛的实用类&#xff0c;使文本样式设计既高效又有效。 在本本中&#xff0c;我们将探索文本样式的常见最佳实践,讨论潜在的陷阱&#xff0c;并推荐设计方法。我们…

多元函数奇偶性

多元函数奇偶性 多元函数的定义域 定义域根据函数的变量数不同,有不同的形式 一元函数 y f ( x ) yf(x) yf(x),定义域可以是数集二元函数 z f ( x , y ) zf(x,y) zf(x,y),定义域可以是一平面区域,是平面点集三元函数 v f ( x , y , z ) vf(x,y,z) vf(x,y,z),定义域是一块空…

ZYNQ_project:lcd_pic_400x400

在lcd液晶屏上显示400x400像素的图片&#xff0c; 像素信息通过电脑的串口调试助手&#xff0c;发送给fpga&#xff0c;存储在例化的双端口ram中&#xff0c; 在要显示图像区域&#xff0c;读取ram中的像素信息。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a;…

O-Star|再相识

暑去秋来&#xff0c;岁月如梭&#xff0c;几名"O-Star"们已经入职一段时间&#xff0c;在这期间他们褪去青涩&#xff0c;逐渐适应了公司的工作环境和文化&#xff0c;迈向沉稳&#xff5e; 为了进一步加深校招生之间的交流与了解&#xff0c;提高校招生的凝聚力和…

gitlab

Gitlab 安装git yum安装 [rootgit ~]# yum -y install git编译安装 Git官网 #安装依赖关系 [rootgit ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc perl-ExtUtils-MakeMaker # 编译安装 [rootgit ~]# tar -zxf git-2.0…

基于 Eureka 的 Ribbon 负载均衡实现原理【SpringCloud 源码分析】

目录 一、前言 二、源码分析 三、负载均衡策略 一、前言 如下图&#xff0c;我们在 orderserver 中通过 restTemplate 向 usersever 发起 http 请求&#xff0c;在服务拉取的时候&#xff0c;主机名 localhost 是用服务名 userserver 代替的&#xff0c;那么该 url 是一个可…

Java动态代理JKD版本

1、ISale.java package com.atguigu; public interface ISale {void saleShaoBing();void saleJianBing();void saleYueBing();void saleManTou(); }2、WuDa.java package com.atguigu;//Target:目标类、目标对象 public class WuDa implements ISale{//target method:目标方法…

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】点云

目录 点云及三维图像处理 点云概念 点云的处理 点云的数据处理

DAY60 84.柱状图中最大的矩形

84.柱状图中最大的矩形 题目要求&#xff1a;给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 思路 单调栈 本地单调栈的解法和接雨水的题目是遥相呼…

Doris表的动态分区

动态分区是在Doris 0.12版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。 目前实现了动态添加分区及动态删除分区的功能。动态分区只支持Range分区。 1 原理 在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任务,这时…

git -1

1.创建第一个仓库并配置local用户信息 git config git config --global 对当前用户所有仓库有效 git config --system 对系统所有登录的用户有效 git config --local 只对某个仓库有效 git config --list 显示配置 git config --list --global 所有仓库 git config --list…

微信小程序 prettier 格式化

一、安装prettier插件 二、打开设置 然后再打开setting.json 新增代码 {"editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","prettier.documentSelectors": ["**/*.wxml", "**/*.wx…

Rust开发——变量、静态变量与常量

1.变量 在 Rust 中&#xff0c;类型安全是通过静态类型系统来实现的。变量绑定默认情况下是不可变的&#xff08;immutable&#xff09;。 在 Rust 中声明一个变量时&#xff0c;默认情况下它是不可变的。例如&#xff1a; fn main() {let x &#xff1a;i32 5; // 这是一个…

代码随想录算法训练营第三十一天| 455 分发饼干 376 摆动序列 53 最大子数组和

目录 455 分发饼干 376 摆动序列 53 最大子数组和 455 分发饼干 将胃口值与饼干进行排序使其从小到大。 从后向前遍历胃口值&#xff0c;并取得此时最大的饼干值&#xff0c;如果饼干大于当前胃口值则将答案res加一&#xff0c;并且将饼干减一。 class Solution {public in…