Git查看签入/提交分支的历史记录
我是Git新手,所以问一些与之相关的基本问题。 早些时候,我使用了clearcase和svn 例如,在Subversion中,当我们进行一些文件更改并签入/提交它们时,就会创建一个相同的日志,如链接“”中所示。因此,Subversion会维护各种签入/提交的日志历史以及每次提交期间签入的文件 Git是否还维护了分支的所有签入历史记录以及每次签入期间更改/添加/删除的文件? 如何在Git extension/browser中或通过命令查看此信息(对分支的各种签入/提交以及每次提交时生效的文件) 换句话说:在Git的任何分支中,假设今天我签入/提交一些文件更改。几天后,我又做了一些更改/添加/删除了一些文件并签入它们。 现在,在更多的日子之后,我想看到所有提交到分支,以及在每次签入/提交期间我更改/签入的所有文件。 如何在Git extension/browser中或通过命令查看所有签入相关信息?您在寻找什么 git log-p。显示所更改文件的差异。 此外,git日志还有许多其他选项,可以帮助您缩小范围,明确您要寻找的内容。这是参考资料 GIT是否还维护了分支的所有签入历史记录以及每次签入期间更改/添加/删除的文件 否:Git的模型完全不同 换句话说:在GIT的任何分支中,假设今天我签入/提交一些文件更改 Git不存储更改。Git存储提交。每次提交都表示每个文件的完整快照,包括提交时每个文件的内容,完整无缺 更准确地说,提交是一个对象这是一个Git术语,但我们也可以在这里使用它,它也可以通过唯一的散列ID标识,例如Git查看签入/提交分支的历史记录,git,git-extensions,Git,Git Extensions,我是Git新手,所以问一些与之相关的基本问题。 早些时候,我使用了clearcase和svn 例如,在Subversion中,当我们进行一些文件更改并签入/提交它们时,就会创建一个相同的日志,如链接“”中所示。因此,Subversion会维护各种签入/提交的日志历史以及每次提交期间签入的文件 Git是否还维护了分支的所有签入历史记录以及每次签入期间更改/添加/删除的文件? 如何在Git extension/browser中或通过命令查看此信息(对分支的各种签入/提交以及每次提交时生效的文件) 换
5D826E972970A784BD7BDF587512510097B8C7
(这是Git存储库中Git的提交的散列ID):
- 包含一些元数据,如提交人的姓名、电子邮件地址和时间戳李>
- 包含其前一个提交的哈希ID—通常只有一个李>
- 包含您提供的日志消息;及
- 包含表示快照的Git对象的哈希ID
Git log
从最后一次提交开始,由其哈希ID标识,您必须以某种方式提供该ID。(您可以通过原始散列ID来完成,但这太难看了。我们稍后再讨论这个问题。)这是最后一次提交,因为Git现在可以使用该提交中存储的前一个散列ID反向工作:
... <-F <-G <-H <-- start here at H
名称master
附带单词HEAD
。这意味着这是我们目前的分支机构
让我们现在就开始做一个新的提交(像往常一样修改文件和git-add
等等)。Git收集我们的日志消息,永久冻结所有文件的内容,生成一个树对象来记住它们,并生成一个commit对象来存储元数据,如commitH
的散列ID、新树的散列ID、我们输入的日志消息等等。这个新的提交对象获得了一些新的大而难看的散列ID,我们称之为I
,而不是猜测它。I
的父级将是H
:
...--F--G--H <-- master (HEAD)
\
I
所以现在,如果我们要求Git向我们显示master
,Git将提取I
,显示I
的日志消息,提取H
,将其与提取的I
进行比较,并向我们显示从H
到I
的差异——所有这些都不需要我们输入任何散列ID
请注意,如果我们在提交之前将一个新的分支名称develope
附加到H
,并使其成为我们的头
,则新的提交I
将在新分支上执行:
...--F--G--H <-- master
\
I <-- develop (HEAD)
…--F--G--H
...--F--G--H
\
I <-- master (HEAD)
...--F--G--H <-- master
\
I <-- develop (HEAD)