问题标签 [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.

0 投票
4 回答
11154 浏览

git - 在合并到主分支时第一个分支被压扁后合并分支的分支

这是我在工作中经常处理的工作流程。

此时,我的同事对特性分支进行了审查,但我想继续开发其他依赖于feature_branch. 所以feature_branch在审核中...

现在我针对 feature_branch 上的代码审查做了一些更改

现在这是我们遇到问题的地方。我们对 master 有一个压缩策略,这意味着合并到 master 中的功能分支必须压缩到单个提交中。

一切都很酷,除了dependent_branch. 当我尝试将依赖分支重新定位到 master 或尝试将 master 合并到其中时,git 对重写/压缩的历史感到困惑,并且基本上将每个更改标记depedendent_branch为冲突。这是一个 PITA,基本上是重新做或消除dependent_branch. 有什么解决办法吗?有时,我会手动创建一个补丁并将其应用到 master 的新分支上,但如果与它有任何真正的冲突,修复起来会更糟糕。

有任何想法吗?我知道这是因为在壁球期间重写了历史,但这是我无法改变的要求。什么是最好的解决方案/解决方法?有什么我可以做的魔法吗?或者是否有更快的方法来完成手动创建差异所涉及的所有步骤?

0 投票
2 回答
222 浏览

git - Git --no-merged 与 --squash

我更喜欢合并我的功能分支,--squash因为它可以让我跟踪添加功能的时间,而且它通常是我需要的完整功能bisect。我发现这可以很好地表示稳定分支随时间的状态。

但是,当使用--squash合并的分支时出现 under--no-merged而不是 under --merged这使得有时很难跟踪每个分支的状态(即何时完成)。我不想删除“完成”的分支,因为碰巧我不得不检查它们以进一步平分以及其他原因(有时问题需要多条攻击路径才能解决,我发现它很有价值记录下来)。

它有任何方法:

  • 拥有--merged--no-merged承认压扁的分支实际上已被合并。

或者

  • 归档合并(压扁)的分支,因为它们不会出现在任一列表中,但如果我需要它们仍然可用。

如果可能的话,我实际上更喜欢第二种解决方案。有相当多的非当前分支累积并隐藏它们将使在列表中搜索我正在寻找的当前分支变得更加容易。

0 投票
1 回答
1342 浏览

java - JGit:如何压缩提交

关于如何使用的任何建议RebaseCommandMergeCommand或 JGit 中的任何其他命令来压缩提交?我找不到很多例子,文档也不是很有帮助。

一个简单的例子

我想压扁以下树:

进入这个:

, , , , , 和Z的压缩提交在哪里。BCDEFG

感谢任何建议和有用的资源。

0 投票
1 回答
267 浏览

git - 如何合并两个不连续的提交

我想合并e5c1e1d627c6c6

怎么做 ?我想要一个更简单的方法。

因为如果它们之间有数百个提交,那么回滚然后重新提交会很麻烦。

截屏

当我跑git rebase --interactive 856c719

然后我在下面编辑了文件,保存后。

我有

2_dqa_streesful_server/.git/rebase-merge/stopped-sha: No such file or directory Cannot 'squash' without a previous commit

0 投票
3 回答
227 浏览

git - git - 做一个简单的一次性壁球的更简单方法?

我正在进行的项目要求所有功能贡献都是单一提交,但我仍然喜欢在此过程中提交我的进度,所以我通常在提交时压缩我的提交。

假设我正在分支上进行第一次新提交:

从那时起,在我提交更改之前,我会:

...然后在交互式 rebase 中压缩我的提交。

我每天这样做 10 到 20 次,对于我想要获得的看似简单的效果来说,这似乎是不成比例的大量按键。有没有更好/更快/更简单的方法来获得相同的结果?如果没有单一的魔法命令可以做到这一点,那么我想我正在寻找的是最有效的方法。从历史中弹出最近的提交(不丢弃它包含的更改!),然后再次提交,这将包括弹出提交的更改以及工作更改。

0 投票
1 回答
551 浏览

git - Git 压缩和合并

谁能告诉我这两个命令有什么区别:

0 投票
1 回答
648 浏览

git - git squash 偏离了跟踪分支

我正在尝试从我正在从 github 存储库(以及我的内部 gitolite 服务器)跟踪的分支中压缩一些提交。我的问题是我正在按照http://www.git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits中的解释进行重新定位,壁球已经完成,但是我的分支与 github 不同一个,我无法对其进行更改。

最初我更新了我的分支:

这是我的日志:

现在,我正在做rebase:

在编辑屏幕中:

变基完成,我得到:

但是后来,我的分支已经从上游分道扬镳了,所以我不能推动这些变化:

然后,如果我运行 git pull,提交更改就会丢失。

有什么帮助吗?

0 投票
1 回答
142 浏览

git - 带有合并分支的 Git 壁球提交

我正在处理master分支,并创建了一个fix分支,在完成工作后合并回 master:

通过 git log 我可以看到:

现在我想将 C,D 的提交压缩为一个提交:

通常我通过 rebase 压缩提交:

但在这种情况下它不起作用,git抱怨:

有没有办法做到这一点?

0 投票
1 回答
1659 浏览

git - 是否可以在不更改提交哈希的情况下压缩提交?

我忘记将文件添加到我已经推送并创建拉取请求的提交中。拉取请求被拒绝(由于其他原因)。我现在想将丢失的文件添加到原始提交中,然后在发出新的拉取请求之前在新提交中执行请求的更改。但是,git rebase将丢失文件的提交压缩到旧文件中会更改提交的哈希,这会导致对 GitHub 产生奇怪的影响。有没有办法做我正在尝试的事情,或者我必须让丢失的文件自己提交?

我是唯一一个使用我的存储库的人。拉取请求是对其他用户的唯一引用。

0 投票
1 回答
5582 浏览

git - git rebase:“无法应用(哈希)。” 我迷路了

我被要求“将(我的)提交变基并压缩成一个提交?” 对于拉取请求https://github.com/samtools/htsjdk/pull/34#issuecomment-45226559

这是我第一次这样做,我认为我只会做错事。我目前迷路了。

上次我尝试了一些东西:

应该怎么做才能满足审稿人的需求?

更新:当我尝试推送时