有点困惑..
它说,在git社区手册中
git log命令可以显示提交列表.它本身就显示了所有可以从父提交到达的提交; 但您也可以提出更具体的要求
$ git log v2.5.. # commits since (not reachable from) v2.5
Run Code Online (Sandbox Code Playgroud)
我认为git log本身只显示对当前分支的提交,并且提交是顺序的 - 那么如何从另一个提交一个提交,但是从它无法访问?
我想我要么误解了什么是git log,要么是什么无法访问意味着什么,或者两者兼而有之.感谢任何帮助!
Chr*_*ris 12
在Git中,你做的每个提交(除了第一个)都会有一个父提交.因此,任何给定的提交(第一个除外)都是一个(或可能不止一个)其他提交的子代.您还可以在Git中拥有多个开发分支,这些分支在特定的祖先提交中开始或偏离.Git中的任何内容都没有规定提交必须按时间顺序或线性顺序发生,因此该git log
工具需要能够处理几种查询历史的方法.
例如,假设我开发了我的应用程序并按字母顺序进行提交:
---A---B---E---G
\ \
C---D F
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我必须在提交A和E上创建一个新分支.
如果我要运行git log <D>
(<D>
提交的SHA 在哪里),那么日志历史将如下所示:
D---C---A---
Run Code Online (Sandbox Code Playgroud)
从那个提交中,只有父母和他们的祖先提交才能被"看到".提交B,E,F和G在技术上是来自提交D的"无法访问",因为它们不共享公共连接的父提交.
"Y可从X到达"表示对象Y可从DAG到达.取决于Y是什么,这可能意味着:
对于某些doc(例如git-fsck),它只是说"Y是可达的".这意味着Y可以从某个标签/分支到达(即Y不能被垃圾收集)