草庐IT

git - 为什么 git log 中的提交日期乱序?

当我执行“gitlog”时,为什么提交日期乱序?我正在查看存储库的1个分支。日期应该是有序的,对吧? 最佳答案 无法保证日期应按任何顺序排列。事实上,您可以使用Git轻松伪造日期。不过,这很可能是由于rebasing造成的或cherry-pick。例如,我经常做的是在本地提交一些工作,然后gitpull--rebase。结果是历史被重写,因此我的提交现在是同时在origin/master中引入的提交的子项,但是gitrebase不会更改日期过程中的提交。gitcherry-pick效果相同如果您想查看提交更改的日期,您可以执行git

git - 为什么 git log 不默认为 git log --follow?

如果我们将文件移动到不同的位置或重命名它,它以前的所有历史记录都会在gitlog中丢失,除非我们专门使用gitlog--follow.我认为通常,预期的行为是我们也希望看到过去的历史,而不是在重命名或移动后“切断”,所以gitlog没有默认的原因使用--follow标志? 最佳答案 注意:从git2.6(2015年第3季度)开始,gitlog可以默认跟踪文件的历史记录!参见commit076c983(2015年7月8日)作者:DavidTurner(dturner-tw).(由JunioCHamano--gitster--merge

git - git log --all 做什么?

为什么gitlog不简单地记录所有最新的提交?这是什么意思?--allPretendasifalltherefsinrefs/arelistedonthecommandlineas.我假设,一旦翻译成简单的英语,它的意​​思是显示所有最新的提交。谁能澄清一下。 最佳答案 不,这并不意味着它显示了所有最新的提交。它显示了分支、标签和其他引用历史中的所有提交,但它不显示无法从任何引用访问的提交。无法从任何ref访问的提交的典型示例是当您刚刚运行gitcommit--amend时:先前的提交仍然存在于本地,但它不再可访问并且不会显示在gi

git log --follow,显示所有提交,包括 merge

我想gitlog--followfile.ext但显示所有提交,包括merge。尝试了no-max-parents,但没有帮助。 最佳答案 The-mwilldothetrickforyou,log-misforgetintothemerges.gitlog-m--oneline--full-history--followfile.ext这应该跟在Merges[-m]中的文件之后。而且我假设您的目标是使用--min-parents=2而不是no-max-parents。--min-parents=2与--merged相同,因为它将返

git log -p 对比 git show 对比 git diff

命令gitlog-p、gitshow和gitdiff是如何相关的?为什么要优先使用一个命令?给定一个包含以下4个提交的repo:commitd-lastcommitcommitccommitbcoomita-initialcommit以下git命令之间有什么区别?:gitlog-pcommitbcommitdgitshowcommitbcommitdgitdiffcommitbcommitdgitlog-pcommitdcommitbgitshowcommitdcommitbgitdiffcommitdcommitbgitlog-pcommitb..commitdgitshowcomm

从昨天开始的 git log 仅在工作日

对于我的日常站立session,我喜欢输出我的提交以回顾我正在做的事情。我有以下别名:standup=log--graph--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(green)%Creset'--abbrev-commit--date=relative--committer='me'--all--since='yesterday'但是,由于周末的缘故,这不适用于周一早上。有谁知道如何使用gitlog--since处理一组工作日,例如周一至周五或周二至周六? 最佳答案

git - 为什么 git log --cherry-pick 没有删除等效的提交?

我一直在尝试使用gitlog--no-merges--cherry-pick--right-onlymaster...my-branch生成在my-branch中但不在master中的提交列表(根据git-log文档)。但是,列表中仍然有许多等效的提交。如果我展示它们和它们的补丁,除了提交ID之外没有任何区别。gitshow16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621>patchagitshowc53c7c32dcd84bfa7096a50b27738458e84536d5>patchbdiffpatchapatchb1c1commitc53c7c3

git - git log --graph 中的线条颜色是什么意思?

我很好奇gitlog--graph中的线条颜色是什么意思?是的,我问的是|/\行,它在左边缘连接提交*控制台输出。问题#1这些颜色有什么stash的含义吗?或者它们是伪随机选择的?问题#2有时重叠(但断开连接)的线具有相同的颜色。例如,请参见上面屏幕截图中的紫色线条:第一行从a55到e1c第二行从3c1到043是否可以要求git明智地选择颜色以避免孤立的(没有共同提交的)相同颜色的线重叠?我希望图表更易于阅读。 最佳答案 这些颜色只是为了帮助您将线条与其他线条区分开来。要回答问题#1,它们不是伪随机分配的,而是顺序分配的,每次git

git - 在 git log 中很好地显示文件重命名历史

git命令gitlog--format='%H'--follow--foo.txt将为您提供触及foo.txt的一系列提交,在重命名中跟随它。我想知道是否有gitlog该命令还将在每次提交旁边打印相应的历史文件名。它会是这样的,我们可以在这里解释'%F'成为文件名的(实际上不存在的)占位符。gitlog--format='%H%F'--follow--foo.txt我知道这可以用gitlog--format='%H'--follow--numstat--foo.txt但输出并不理想,因为它需要一些重要的解析;每个提交都分散在多行中,您仍然需要解析文件重命名语法("bar.txt=>fo

git - 如何让 git log 剪切长注释?

我有一个gitlog别名,它将每个提交打印为一行。由于有些人在提交日志中写了太长的一行,许多提交换行。如何格式化gitlog输出以在50个字符后剪切注释?我在git-log手册页中找到了这个,但它只会填充简短的注释,不会剪切长的注释。%[,trunc|ltrunc|mtrunc]):makethenextplaceholdertakeatleastNcolumns,paddingspacesontherightifnecessary.Optionallytruncateatthebeginning(ltrunc),themiddle(mtrunc)ortheend(trunc)ifth