考虑我有提交...--A--B--C如果我使用gitrebase-i将所有三个提交压缩为一个,我们可以pickAsquashBsquashC我看到了结果提交A有它的原始时间戳。如何让它继承提交的时间戳C(最后一个)?我能想到的是gitcommit--amend--date=,但这种方式需要记住提交的时间戳C在Squash之前或从reflog。我发现最新提交的时间戳更合理,因为它显示了我实际完成提交中的工作的时间。谢谢。 最佳答案 没有简单的方法可以做到这一点,但有一些选择。这是一个:gitcommit--amend--date="$
是否可以在SourceTree中压缩?我看到显然您可以“拖放”提交以压缩它们。但是,当我这样做时,它只会突出显示几个提交。 最佳答案 更新的答案适用于Windows的SourceTreeAsofversion1.5,您现在可以进行交互式rebase,这将允许您进行压缩。Mac版SourceTree交互式rebase已在SourceTreeforMacsinceversion1.6中可用(强调我的):Thegitrebase–interactivecommandallowsyoutoreorganiseyourcommitsafter
无法了解如何为当前分支执行压缩rebase。控制台命令是gitrebase-iHEAD~2然后像往常一样压扁。但是如何在TGit中做同样的事情呢?初始化案例的脚本gitinit.touch1gitadd1gitcommit-m"1"touch2gitadd2gitcommit-m"2"touch3gitadd3gitcommit-m"3"压缩后的结果是1次提交包含3个文件。有什么建议吗? 最佳答案 这对我使用TortoiseGit1.7.12有效:右键单击要进行交互式rebase的工作目录,然后从上下文菜单中选择TortoiseGi
我想要一个简单的解决方案来在交互式rebase期间将两个merge提交压缩在一起。我的仓库看起来像:X---Y---------M1--------M2(my-feature)//////a---b---c---d---e---f(stable)也就是说,我有一个my-feature分支,最近merge了两次,中间没有真正的提交。我不只是想重新设置my-feature分支,因为它是自己的已发布分支,我只是想将最后两个merge提交merge为一个(尚未发布这些提交还)X---Y----M(my-feature)////a---...--f(stable)我试过:gitrebase-p-
我正在寻找一个git命令来帮助我处理我的功能分支,当它们准备好进入Master时。这个git命令会将我在分支上的所有更改压缩到master之上的单个提交中。我今天这样做:gitrebaseorigin/mastergitrebase-iHEAD~4其中4是压缩的提交数。但是,这需要我知道我有多少次提交。我今天通过运行来做到这一点:gitlogHEAD...origin/master然后计算提交数。我觉得好像应该有更好的方法来做到这一点。或者其他人也是这样做的? 最佳答案 您所要做的就是:gitcheckoutfeature_bran
应该使用哪一个来stash微提交?gitmerge--squash和gitmerge--no-ff--no-commit之间的唯一区别是其他parent的拒绝吗? 最佳答案 区别这些选项的存在是为了不同的目的。您的存储库以不同的方式结束。假设您在主题分支上完成开发后,您的存储库是这样的:--squash如果你checkoutmaster然后gitmerge--squashtopic;gitcommit-mtopic,你得到这个:--no-ff--no-commit相反,如果你执行gitmerge--no-ff--no-commit;
正如标题所说,我不太清楚gitmerge--squash和gitmerge--no-commit之间的区别。据我了解gitmerge的帮助页面,这两个命令都会让我处于更新的工作树中,仍然可以编辑然后进行最终提交(或多次提交)。有人可以澄清这两个选项的区别吗?我什么时候会使用一个而不是另一个? 最佳答案 gitmerge--no-commit这就像一个普通的merge,但不创建merge提交。此提交将是mergecommit:当您查看历史记录时,您的提交将显示为正常merge。gitmerge--squash这会将更改merge到您的
我在gitrebase-iHEAD~2的待办事项文本中有以下内容:pick56bcce7Closes#2774picke43cebaLint.py:Replacedeprecatedlink#Rebase684f917..e43cebaonto684f917(2command(s))#...现在,当我尝试压缩第一个(56bcce7)并通过在第一个之前添加“s”来选择第二个时,我收到以下错误:Cannot'squash'withoutapreviouscommit谁能解释一下这是什么意思,我该怎么做?我想压缩第一个提交(56bcce7)并“选择并改写”第二个(e43ceba)提交
我使用GitExtensions已经有一段时间了(太棒了!)但我还没有找到以下问题的简单答案:有时,在输入提交消息时,会出现打字错误。我的friend向我展示了如何通过以下方式修复它(在GitExtentions中):Right-Clickonthecommit>Advanced>Fixupcommit然后我只需选中“修改”框并重写我的消息,瞧!我的提交消息已修复。但是这个其他选项“Squashcommit”...我一直想知道它的作用是什么?!我的问题是:有人能简单地解释一下Git/GitExtensions中Squashcommit和Fixupcommit之间的确切区别是什么吗?它们
在构建新的docker镜像时,有没有办法在docker-compose中使用--squash选项?现在他们已经在6个月前在docker中实现了--squash,但我还没有看到任何关于如何在docker-compose.yml中使用它的文档。这里有工作吗?(我看到一个Unresolved问题提出请求feature) 最佳答案 您可以使用Dockermulti-stagebuilds而不是使用--squash.这是一个使用DjangoWeb框架的Python应用程序的简单示例。我们希望将测试依赖项分离到不同的镜像中,这样我们就不会将测试