问题标签 [git-log]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
291312 浏览

git - 获取所有 git 提交的列表,包括“丢失”的提交

假设我有一个这样的图表:

如果我这样做git log --all --oneline,我将获得所有六个提交。

但是如果图表是

我不会看到 E 和 F。我可以让 git 告诉我所有的提交,包括那些未命名的分支上的提交吗?

谢谢

0 投票
5 回答
11090 浏览

git - Git 真的可以跟踪单个函数从一个文件到另一个文件的移动吗?如果是这样,怎么做?

有好几次,我遇到过这样的说法,如果你将一个函数从一个文件移动到另一个文件,Git 可以跟踪它。例如,这个条目说,“Linus 说如果你将一个函数从一个文件移动到另一个文件,Git 会告诉你这个移动过程中单个函数的历史。”

但是我对 Git 的一些底层设计有一点了解,我不明白这是怎么可能的。所以我想知道......这是一个正确的说法吗?如果是这样,这怎么可能?

我的理解是,Git 将每个文件的内容存储为一个 Blob,每个 Blob 都有一个全局唯一标识,该标识来自其内容和大小的 SHA 哈希值。然后 Git 将文件夹表示为树。任何文件名信息都属于树,而不属于 Blob,因此文件重命名例如显示为对树的更改,而不是对 Blob。

因此,如果我有一个名为“foo”的文件,其中包含 20 个函数,以及一个名为“bar”的文件,其中包含 5 个函数,然后我将其中一个函数从 foo 移动到 bar(分别导致 19 和 6), Git 如何检测到我将该函数从一个文件移动到另一个文件?

据我了解,这将导致存在 2 个新 blob(一个用于修改后的 foo,一个用于修改后的 bar)。我意识到可以计算出一个差异来表明该函数已从一个文件移动到另一个文件。但是我看不到有关该函数的历史记录如何可能与 bar 而不是 foo 相关联(无论如何都不会自动关联)。

如果 Git 要实际查看单个文件的内部,并为每个函数计算一个 blob(这将是疯狂的/不可行的,因为您必须知道如何解析任何可能的语言),那么我可以看到这是如何可能的。

所以……这个说法正确与否?如果它是正确的,那么我的理解中缺少什么?

0 投票
6 回答
18386 浏览

git - 如何让 Git 日志显示今天所有的提交?

我希望能够看到我今天使用git log. 我想出了git log --after="yesterday"
但是,这对我来说似乎有点尴尬,有没有更简单的命令来达到同样的效果?

0 投票
1 回答
419 浏览

git - 为什么我不能让 git log 使用“since”和“until”参数?

从 git log 帮助页面:

因为..until 仅显示指定的两个提交之间的提交。当省略或省略时,默认为 HEAD,即当前分支的尖端。有关拼写 and 的更
完整列表,请参阅 gitrevisions(7)。

但我无法让它工作。git log 32c67ec..HEAD显示整个日志的一些未知的大子集。

0 投票
2 回答
36868 浏览

git - 如何读取 git 日志图

在 git community book 中,它说

您可以做的另一件有趣的事情是使用“--graph”选项可视化提交图,如下所示:

它将为提交历史行提供一个非常好的 ASCII 表示。

我应该如何阅读这个图表?420eac9与其他人有何不同?

0 投票
8 回答
16914 浏览

git - 如何反转`git log --grep =` 或如何显示与模式不匹配的 git 日志

我想用来git log显示与给定模式不匹配的所有提交。我知道我可以使用以下内容来显示所有匹配模式的提交:

如何反转匹配感?

我试图忽略消息中“撞到版本...”的提交。

编辑:我希望我的最终输出非常冗长。例如git log --pretty --stat。所以输出git log --format=oneline对我不起作用。

0 投票
5 回答
45640 浏览

git - git-log 中的颜色

当您运行时git log --decorate --pretty=oneline,输出将包含诸如(HEAD, refs/published/master, master)着色之类的条目。

我的 gitconfig 中还有以下内容:

在执行如下自定义格式时,如何复制这些颜色?

0 投票
1 回答
15881 浏览

git - 如何获取特定提交的“git log”补丁

如果我有一个尚未推送到源的提交哈希,我如何仅为该提交生成补丁。我想使用git log -p --no-names但看不到传递特定提交哈希的开关。我应该使用不同的 git 命令吗?

0 投票
3 回答
28110 浏览

git - 如何查看合并到合并提交中的提交?

如果my-feature-branch被合并到my-main-branch,我如何查看从哪些提交中合并my-feature-branch

0 投票
2 回答
238 浏览

git - 如何使用 git-parse-rev 的相对修订语法让 git-log 显示提交

git show-branch 使用 git-parse-rev 可以解析的相对修订表达式显示提交,例如“dev~106^2~52”。如何从 git-log 获得相同的输出?