问题标签 [git-interactive-rebase]

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 投票
2 回答
6385 浏览

git - 如何运行 git rebase 交互模式以删除重复提交

当我重新提交最近的提交时,我犯了一个错误。(我忘了git fetch --all先,然后变基),从那以后我已经提交并推送到远程分支。现在我通过先获取正确地进行了 rebase,解决了冲突,然后推送到远程分支。现在,似乎我最近的所有提交都出现了两次。我想做的是使用 git rebase 交互模式,选择我想要的所有提交,然后正确地 rebase 到提交 sha 代码。

这是这样做的方法吗?如果我开始git rebase -i,我应该使用哪个 sha 代码,原始分支点 sha 代码?还是最新的sha代码?

0 投票
1 回答
27144 浏览

git - 如何在跳过特定提交时变基?

有没有办法在跳过另一个分支上的特定(冲突)提交时将一个分支重新定位到另一个分支上?

例如,我想变基为mybranchmaster但 master 包含一个与 master 中的提交冲突的提交,所以我更喜欢完全撤消该提交。

x 标记冲突的提交。

0 投票
1 回答
11569 浏览

git - git rebase -ia 分支到自身

我的回购中有以下内容

我想将 A.* 提交修复为一个描述功能 A 的提交。我试过了git rebase -i origin next,但这并没有达到我的预期。有没有办法做到这一点?

我想创建一个分支 foo,它本质上是 next,然后 rebase next 到 foo,然后是合并/删除 foo。然而,这似乎是草率的。

0 投票
2 回答
82 浏览

git - 如何自动确定交互式变基的最佳提交?

我经常使用“修复!”,“壁球!” 和“rebase -i”来清理、纠正或只是摆弄最近的、未推动的历史。我想找到一种方法让 Git 自动选择哪个提交对交互式 rebase 最有意义,这样我就可以定义一个别名来进行快速交互式 rebase。

我认为在这种情况下最好的提交将是最近的祖先:

  • 出现在任何其他分支(本地或远程)
  • 有不止一个父母
  • 没有父母

第一个条件确保我不会重写可能影响其他人的提交。第二个确保我不会尝试“通过”合并来变基,这绝对不是我想要的。第三个只是一个健全性检查。

所以问题是,我如何使用 Git 找到那个提交?

0 投票
2 回答
82 浏览

git - 分支后提交时的交互式变基

我的 git 存储库中有以下(简化的)场景:

提交 F 是对 C 的修复,这需要成为单个提交。我尝试在“主”分支上使用交互式变基git rebase -i HEAD~2,但这会导致以下结果:

而我希望它是这样的:

任何人都知道如何实现这一目标?我还没有推送任何东西。

0 投票
3 回答
401 浏览

git - 如何在 Git 中重新提交同一分支的提交?

我在 Git 中做了一些错误的变基和冲突解决,所以我最终陷入了这种愚蠢的境地:

我的问题是提交Add task Music Collection并且Add Music Collection是相同的。我想要:

  • 让我的分支走一条路;
  • 只有一个带有 title 的提交Add Music Collection

我可以做然后git rebase -i 8e9ccae压缩并重命名c66dced为吗?我认为首先的问题是我已经将我想要 rebase 的提交推送到了 Github,但我认为只要没有其他人在使用它们,这可以吗?cbbe364cbbe364Add Music Collection

0 投票
0 回答
1804 浏览

git - smartgit 将 origin/local 重新定位到本地/或相反方向

当我使用pull 和 rebase 本地更改 或仅获取 origin bracnh 然后通过“rebase HEAD To”手动将本地头 rebase到 origine/local 分支时......发生合并冲突但没关系......


只有两件事让我感到不安:-首先,这之后的头部不指向本地分支,现在他指向了该分支的最顶层提交,因此 - 第二个变基过程没有开始(然后它开始我们可以看到读取颜色标题“变基”在头名之后)。


有人可以对此有所了解。另外,补充一下,我尝试在我朋友的电脑上执行相同的操作,一切正常!我也想有清晰的日志。但我仍然没有解决这个问题,我使用合并分支。请帮忙!

0 投票
2 回答
7582 浏览

git - Git 从一个分支变基到另一个分支

我有以下情况:

而且我只想移动dev-main分支中的新功能(K---L) 分支,而没有 (H---I---J) 形式dev-team1

0 投票
2 回答
920 浏览

git - git rebase --interactive (reword) 给我留下了两棵具有相同提交消息的树

我想改写我的提交信息。我使用git rebase --interactive, 并用于reword更改提交消息。我的期望是我的树将保持完全相同,但提交消息不同。相反,我最终得到了两棵树,一棵包含原始消息,一棵包含改写的消息。

我已经编辑了下面的树以消除复杂性,所以它可能不是最真实的表示出问题的地方以及原因,但它清楚地表示了我现在所拥有的。请注意,有 4 条消息基本相同,但略有改写。我向你保证,增量是相同的。

我该如何解决?

如果它绝对有帮助,我可以在某处放置完整树的链接,或提供任何其他信息。

0 投票
0 回答
515 浏览

git - 可以在 rebase 暂停时更改 Git Interactive Rebase 的合并策略吗?

我正在尝试将我的主仓库中的所有提交压缩到我的分支中的一个提交。我这样做是因为主分支是从我们无法控制的远程仓库中拉出的,而有问题的分支被拉/推到我们自己的远程 git 仓库(Atlassian Stash)。我这样做是因为我真的不想也不关心 master 分支的所有提交历史。

我使用 开始整个过程git rebase --root -i​​,在交互部分中我选择改写第一个提交并修复其余部分(大约有 16000 个提交)

现在,在这个过程的中间,rebase 经常遇到冲突,即使有一半的提交导致冲突,手动选择接受他们的提交也需要很长时间。

因此,当 rebase 过程因冲突而停止时,是否可以将合并策略更改为始终接受他们的?