问题标签 [squash]
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.
git - 将合并提交重写为壁球合并提交
我合并了一个长期存在的分支,由于冲突解决,我花了一些时间来完成合并。
我发现我无法使用git-svn
:发布我的工作,git svn rebase
它将重新设置合并分支的所有提交,而不是提交一个合并提交。我发现git merge --squash
有点晚了...
是否可以在不丢失所有已经完成的冲突解决工作的情况下将合并提交更改(rebase interractive?)合并提交到“壁球合并”提交(即没有触发新的合并,因为我没有启用该rerere
工具)?
git - Git merge --theirs 所有文件,除了那些已经被编辑过的文件,, 或者,在这种情况下我会自己解决合并冲突吗?
我有两个分支,主分支和上游分支,有数千个要合并的文件和相同数量的合并冲突。
问题是,90% 的上游(“他们的”)文件是我想要保留的。除非文件已由特定人员编辑,否则有没有办法自动使用所有上游文件,而不是“git mergetool”所有这些文件?这样,我可以自己手动解决合并冲突,只需十几个文件。
在我看来,这是伪代码的工作方式:
git - Git 分支 --merged / --no-merged 和 --squash 选项
git branch --merged
似乎与--squash 不能很好地配合使用。
如果你做一个 normal git merge
,然后git branch --merged
告诉你哪些分支已经被合并。但是,如果使用了 --squash 选项,情况并非如此,即使生成的树是相同的。
我怀疑这是一个 git 缺陷,并且想知道我是否缺少一些 git-fu,或者我是否误解了某些东西。
简而言之:我想使用 --squash,但也希望 git 告诉我我压入另一个分支的分支是否已被 --merged。
git - git subtree push --squash 不压扁
我git subtree
用来组织我的 git 存储库。假设我有一个名为的主存储库repo
和一个名为lib
.
lib
我通过压缩它的历史成功地“导入”了存储库。lib
我现在也想通过压缩历史来回馈社会。这似乎不起作用:我指定了--squash
选项,git subtree push
但是在查看历史记录时,我仍然发送所有提交。
如何重现
这是一个脚本,显示了重现问题所需的最少命令:
git log
显示问题
这两个git log blabla
命令的输出是:
和 :
如您所见,"repo commit 2,3,4"
尽管我指定了 squash 选项,但 lib 看到了。反过来工作,因此Squashed 'lib/' content from commit f28bf8e
.
我在 git 版本 1.8.1.msysgit.1 的 windows 和 git 版本 1.8.3.4 的 linux 上尝试过。
那么为什么这个--squash
选项不做壁球呢?
附带问题
为什么 lib/master 会出现在repo
存储库的日志中?知道它仅在“失败”之后出现git push
:如果您取消注释第一个git log blabla
,您将获得以下输出,显示隐藏的历史但没有 lib/master 的迹象:
excel - 在某些计算机上打开 excel 时图形被挤压
我在使用 excel 的图表时遇到了一些问题 - 在我的办公室,某些人打开特定的电子表格最终会得到如下所示的图表:
每个人都在 Windows XP 上,混合使用 Excel 2003 和 2007。只有一些人会遇到此错误,IT 无法找出原因。由于数据具有商业敏感性,我无法真正发布任何更具体的内容或任何日志,但我希望这可能是一个易于修复的常见故障。
谢谢你的帮助,
git - 如何使用本地和远程 Git 存储库之间的差异创建单个提交?
在 Git 中,假设我一直在本地分支上工作:
我做了本地提交 A、B 和 C,同时远程分支继续提交 X 和 Y。所以我做了一个拉取并得到:
如果我现在推送,远程历史将包括我所有的 A、B、C 和 M 提交......但这不是我想要的。
我只想推送一个与本地分支不同的提交,因此远程分支看起来像这样,没有任何合并复杂性:
我怎样才能做到这一点?
git - Git squash 提交与交互式 rebase 与合并提交之间
我有一个具有以下历史记录的测试存储库:
提交 eb4a4d52a8fe6abdebb93c7747beac2d511003af (HEAD, master) 合并: 22f849c 94e27d1 作者: 你的名字 日期: Mon Jan 27 00:51:42 2014 +0100
提交 22f849c403b6cdf43280e66e937931bf9d0ab25a 作者:您的姓名 日期:2014 年 1 月 26 日星期日 21:01:35 +0100
提交 94e27d1c78833784619e25eeb8e0186f154f2282 (cheryr) 作者:您的姓名 日期:2014 年 1 月 27 日星期一 00:48:12 +0100
提交 2368d78ba95811e9eb9897487cccb7b7f6927910 作者:您的姓名 日期:Sun Jan 26 22:31:51 2014 +0100
提交 b1f0f8a1a1951e661a7e833314fc483085516b0c (tmp) 作者:您的姓名 日期:Sun Jan 26 22:19:56 2014 +0100
提交 3a8f2e17e721821ae8ebd1e272437c8632224b9a 作者:您的姓名 日期:2014 年 1 月 26 日星期日 22:18:23 +0100
提交 28d4a62d4d21c3e8155553e1216bfa981afe7212 作者:您的姓名 日期:Sun Jan 26 22:15:42 2014 +0100
这是否可以将几个第一次提交压缩为一个,以及合并提交?不可能简单地将HEAD~4传递给git rebase -i因为它将从合并提交的第一个父级返回 4 个提交。
automated-tests - SquashTA - 整合现有测试
我们期待使用 squashTA 来管理我们的测试。我们面临的问题是,我们已经拥有大量自动化测试集合,并且无法使用 squash TA 通过 squash TM 运行它们。
我们的测试使用junit+selenium WebDriver+SpringFramework。目前,我们通过 maven(在命令行中)启动我们的自动化测试,并且我们有一个 jenkins 服务器定期运行它们。
我们试图在 squash TA 项目中重用我们的测试,将它们放入src/squashta/resources/selenium/java
但是这个文件夹中的代码甚至不支持 java 包。就像示例中的 java 不是真正的 java 而是由 squashTA 解析的假 java。
是否有任何方法可以将此类现有测试与 squash(TA/TM) 一起使用?或者,您知道可以完成这项工作的任何替代方案?(我们目前正在使用 testlink,必须更改)。
git - 合并或变基任意数量的提交
比方说我的本地git log
节目:
我的遥控器git log
显示:
最简单的方法是什么(假设任意大量的本地提交):
git - 将非线性提交合并为一个提交(制作香肠)
考虑以下 git 历史:
我如何将21f05f9
738ae0a
和2535dca
合并到一个提交中?
我尝试过git rebase -i 2535dca
, pick
ing2535dca
和squash
ing 21f05f9
and 738ae0a
,但出现以下错误:
我不确定是否有办法在 rebase 的交互模式下0534049
跳过提交。288ffd2
有没有更好的方法来做我正在做的事情?有什么陷阱吗?
编辑:
我开始明白的是,我真的不应该把自己放在需要非线性提交的地方,特别是如果这些提交都与一个文件有关。我可以看到一个提交可能会破坏代码或产生冲突的实例。