兰州建设局网站公告,长沙seo公司,wordpress根据文章id显示内容,wordpress页面添加自定义字段Git 学习指南#xff08;二#xff09;提交与多次提交 三. 提交3.1 访问权限与时间戳3.2 add与commit3.3 再谈提交散列值3.4 提交历史3.5 略有不同的提交查看方法3.6 同一项目的多部不同历史 四. 多次提交4.1 status命令4.1.1 选择性修改 4.2 存储在暂存区中的快照4.3 怎样的… Git 学习指南二提交与多次提交 三. 提交3.1 访问权限与时间戳3.2 add与commit3.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 访问权限与时间戳 1Git会保存每个文件原有的访问权限即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.txt3.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 --formatfuller更多细节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
解析
1Changes to be committed 列出那些将在下次提交被纳入版本库中、被修改的文件
2Changes not staged for commit 列出已经被修改但尚未被注册到下次提交的文件 与书中有点差异
3Untracked 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.txt4.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}恢复指定储藏内容