![]() |
1
2
热释光;博士好的 想法,也不是 坏的
(旁注:有一种不同的、通常更好的方法来解决使用
长:三个关键要点快进 最终是关于 ,它有一个完整的网站专门介绍这个想法 Think Like (a) Git . 这本书值得一读。最后一点是,通过 复制 提交,然后放弃原件,取而代之的是新的和改进的副本。正是这种放弃,以及伴随它而来的非快进,要求停止使用过时的承诺,这带来了所有导致简单问题的麻烦 不重新设置共享分支的基础 太 很简单。 (还有一些其他的,包括结尾的一个,除了对存储库历史学家来说,它们通常不那么重要。)
只要使用/将要使用/正在使用此分支的所有用户都同意,就可以使用rebase。 定义术语和 the gitglossary
这可能是真的,但只有在像你遇到的那种微不足道的情况下。此外,这里还有一些术语问题。特别是,我们必须定义“头”。如果你这么做的话 Git术语表 是的,我们需要一个不同的tern:我们需要开始使用 提示提交 head 和 branch ,间接地 提示提交:
在大多数情况下,所有对
头 和
因此,如果我们从
我们只需要存储
最新的
提交到某个地方,以便Git可以查找散列
出于绘图的目的,由于提交的内容不能更改,我们可以用线将它们连接起来,只要我们在内部记住这一点,我们就只能继续 (从新提交到旧提交)。新的提交会记住它们的父级,但是现有的提交不能在创建子级时将它们的子级添加到它们中,因为太晚了:到那时父级将被冻结。让我们画一个稍微复杂一点的图表:
这里是commit的父级
1 Git通过在每次提交中添加日期和时间戳来确保这一点,这样即使您强制Git重新提交与一分钟前完全相同的内容,也可以重新使用您的姓名、电子邮件地址和日志消息 同一个父哈希 时间戳 是不同的。你的意思是 不能 如果您不做任何更改,请强制Git每秒进行一次以上的提交,但这是我准备接受的限制。:-) 这是由于Git对象的hash ID实际上是该对象数据内容的加密校验和。这有两个目的:在给定一个摘要校验和的情况下,可以很容易地查找实际数据;而且,它使检测数据损坏成为可能,因为仅仅改变一个数据位就会产生一个新的、不同的校验和。 这个词汇表与大多数人的日常用语不符
Gitglossary尝试使用该名称
对于分支名称本身
分支
后面
小费,还有
提示提交
对于提交
我自己的条款如下:
分支机构名称
添加提交最后,我们做什么都不重要 call these ,只要 we all understand what each other is talking about . 不幸的是,在实践中,人们对最后一部分有困难。那么让我们来说明添加新提交的过程。
对于Git来说,提交散列id才是真正重要的,我在这里把它画成单个大写字母。这个
姓名
现在我们开始工作,导致
名称
添加合并提交
向后的
合并提交
快进行动在Git中,我们可以在任何时候将任何分支名称指向当前存在的任何提交。现在我们有了:
我们可以创建一个新名称,例如
现在让我们强行移动
如果我们从
现在让我们做一个
现在可以访问哪些提交?让吉特跟着
二者都
父母
在图表中,提交
特别是,假设我们
这会让我们的Git打电话给另一个Git
现在我们来做我们的工作
但是,不管我们是否进行第二次推动,如果我们移动
再一次,这次,他们会很高兴地接受这个请求。那是因为
这
三
如果
樱桃采摘和再基
这个
所以呢
作为最后的把戏,
注意在这种情况下,
. 如果
4
实际机制
不过,除了一些棘手的情况,你可以把它看作
应用父项与子项的差异,就像它是一个补丁一样
. 事实上,有些
如果我们先合并,那就太快了!
这一次,当Git列出
最后一幕
如果我们跑的话会得到完全一样的效果
如果我们现在对
不要 合并,也可以:
两种方法的区别
关键的区别是如果我们
不要
快进
如果你要做大量的历史检查,也许是为了寻找和修复错误,也许只是出于历史的兴趣,直线的,从不快速前进的方法给了你可以使用的优势
还有一种选择,虽然用处不大,但值得考虑。假设,在合并之后
你得到的是一个承诺
第一
(实际上,这没什么必要,只要从另外两种方法中选择一种,但如果你这样做了,你就会得到这样的结果。)
因为任何一个操作Git的人都有可能在这里强加某种差异。不过,这样做通常是个坏主意。如果您正在检查一些您所知甚少的国外Git存储库,也要记住这一点:如果您看到了这种模式,您可以比较合并的树
|
![]() |
2
0
|
![]() |
charleslcso · 从开源克隆并推送到我的GitHub[重复] 1 年前 |
|
Itachi · 无法为python项目安装“DAWG”包 1 年前 |
![]() |
Igor · git重置已删除目录上的头 2 年前 |
![]() |
Robo · 撤消删除Git中被忽略的文件 2 年前 |
![]() |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
![]() |
ShortArrow · 如何使用git管理链接源文件? 3 年前 |
![]() |
Siggi · 使用git移动文件时丢失历史记录 3 年前 |