标签: git-log

如何显示过去 24 小时内推送的 git 更改?

git log --since="24 hours ago"我熟悉显示过去 24 小时内提交(到作者本地存储库)的更改的语法。

我们有一个开发团队,他们不断在本地做出承诺,然后每两天左右才推送这些更改。如果这是真的,那么git log --since="24 hours ago"将永远不会列出这些更改。(我们将其用于夜间摘要电子邮件)

我真正希望看到的是:在过去 24 小时内推送到 master 的更改,并且能够执行此操作,而无需手动记住上次运行摘要脚本的提交哈希值。

git git-log

2
推荐指数
1
解决办法
6239
查看次数

可视化 git 分支依赖关系

有没有一个工具可以显示特定分支已合并到哪些分支?例如,如果“A”已合并为“B”和“C”但没有合并为“D”,那么如何输出“B”和“C”?我只需要分支名称。

git branch git-log

2
推荐指数
1
解决办法
3292
查看次数

`git log -p`:显示差异还是生成补丁?

在阅读git的文档时,我似乎发现了一个矛盾。

git 的这个官方教程中git log -p据说会显示提交的历史以及完整的差异信息。但是,在git-log 的文档中-p据说该选项会生成补丁文件而不是直接输出。此外,“他们不产生上述输出”的描述令人困惑,因为“上述描述”非常含糊,至少对我而言。

除了上面给出的部分,我只找到了一个提到该-p选项的地方,它与教程中的描述相匹配,而不是补丁部分。此外,当我git log -p在我的计算机上运行时,它显示提交历史和差异信息,并且我没有看到任何补丁文件生成。那么文档的两部分是矛盾的吗?还是我误解了“生成补丁文件”的过程?谢谢!

git version-control git-log

2
推荐指数
1
解决办法
560
查看次数

显示 2 个日期之间合并到 Master 的所有分支 - Git

通过 git log,我可以使用 --since 和 --until 来显示 2 个日期之间的数据。使用 git Branch -r 我可以提取所有远程分支。

我如何显示两个日期之间合并到 master 的所有分支?

git log --since "DEC 1 2019" --until "JAN 1 2020" --pretty=format:"%h %an %ad"
Run Code Online (Sandbox Code Playgroud)

这将返回 2 个日期之间的所有提交,但我想返回这 2 个日期之间合并到 master 的分支名称?

提前致谢。

git git-log

2
推荐指数
1
解决办法
1444
查看次数

如何使用 git shortlog 在单个目录中的多个存储库中聚合用户提交统计信息?

我有一个目录,里面有很多 Git repo 子目录,我想积累类似于

git shortlog -sne --no-merges
Run Code Online (Sandbox Code Playgroud)

对于其中的所有存储库,按用户的所有总提交对用户进行排序。

例如对于回购 1:

430 Author 1 <author1@email.com>
 20 Author 2 <author2@email.com>
Run Code Online (Sandbox Code Playgroud)

例如对于回购 2:

123 Author 1 <author1@email.com>
 92 Author 2 <author2@email.com>
Run Code Online (Sandbox Code Playgroud)

总结果:

453 Author 1 <author1@email.com>
112 Author 2 <author2@email.com>
Run Code Online (Sandbox Code Playgroud)

是否可以使用 git 内置工具来做到这一点?

我能够走出 repo 文件夹并为单个文件夹运行它:

git -C repoFolder shortlog -sne --no-merges
Run Code Online (Sandbox Code Playgroud)

git bash shell git-log

2
推荐指数
1
解决办法
880
查看次数

查看与特定 git 分支有关的提交(和差异)

假设我有以下 git 结构:

A - B - C - D - E - F master
         \_ G - H - I branch
Run Code Online (Sandbox Code Playgroud)

git checkout branch; git log 不识别分支与主分支的点。

如果我想检查此分支中的所有更改怎么办?

git git-diff git-log git-branch

2
推荐指数
1
解决办法
40
查看次数

2
推荐指数
1
解决办法
908
查看次数

git log仅显示文件的最新版本

为了比较项目中文件的两个修订版,我做了一个git log /path/to/file只返回最后一次提交的文件.

执行时,git blame /path/to/file我得到了每行的跟踪,其中包含正确的sha,date和authors.

因此提交存储但不知何故git log不显示它们.

有关如何解决此问题的任何想法?

git git-log git-commit

1
推荐指数
1
解决办法
90
查看次数

如何在 git log 命令中排除已删除的文件?

我需要在 git log 中排除已删除的文件。我使用该命令git log -1 --name-only --pretty=format:eee6ce6在最后一次提交中获取更改的文件名。我使用pre-receive hook 来阻止特定的文件类型提交。上面的命令列出了所有修改过的文件。

但我想允许用户删除特定的文件类型。我怎样才能做到这一点?

  • 我也试过这个git log -1 --name-only --pretty=format:eee6ce6-filter=d 命令,但它也列出了已删除的文件。
  • git log -1 --diff-filter=d --name-only非常有效。但它commit ID, author name, date也给予。我只想要文件名。

git bash delete-file git-log

1
推荐指数
1
解决办法
568
查看次数

合并提交第一和第二父母

在涵盖相对提交引用的 Udacity 课程中,它说:

^ 表示父提交,~ 表示第一个父提交

^ 和 ~ 之间的主要区别在于何时从合并创建提交。合并提交有两个父项。对于合并提交,^ 引用用于指示提交的第一个父项,而 ^2 指示第二个父项。第一个父级是您运行 git merge 时所在的分支,而第二个父级是合并到的分支。

基于在git log --oneline --graph命令行上运行的以下输出:

图形

使用 SHA 的提交f69811c是 HEAD~4^2 相对于(最顶层,带有头指针)提交9ec05ca。合并提交1a56a81的第二个父项是f69811c,课程解释了这一点“HEAD~4 引用了当前提交的第四个父项提交,然后 ^2 告诉我们它是合并提交的第二个父项(被合并到)”

根据以黄色引用的课程文本,它似乎e014d911a56a81的第一个父级,因为它是与合并提交具有相同分支的父级。

根据这些信息,e6c65a6的关系1a56a81是什么?

我不认为它也是第二个父母(如果可以有多个第一和第二个父母......),即使它也是合并到 master 的分支,因为该答案在课程测验中被拒绝。

另外,如果我是正确的,e014d911a56a81第一个母公司,是什么的关系2097521,并3772ab11a56a81(这似乎他们也第一次家长,再次,如果合并提交其实可以有多个父)?

git merge git-log

1
推荐指数
1
解决办法
3966
查看次数