- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 git 仓库的历史是这样的:
* (topic2) commit_11
* (topic1) commit_10
* commit_9
* commit_8
* (HEAD, master) commit_7
* commit_6
* commit_5
* commit_4 <- I wanted to edit this commit.
* commit_3
我也是这样
git rebase -i commit_3
并在编辑器中将 pick
替换为 edit
for commit_4。我更正了变量名中的一些拼写错误,然后
git add .
git commit --amend
(rename commit)
git rebase --continue
现在历史看起来像这样:
* (HEAD, master) commit_7.1
* commit_6.1
* commit_5.1
* commit_4.1 <- Edited commit.
| * (topic2) commit_11
| * (topic1) commit_10
| * commit_9
| * commit_8
| * commit_7
| * commit_6
| * commit_5
| * commit_4 <- Original commit.
|/
* commit_3
我想让我的历史像以前一样干净利落。我尝试了我之前多次成功使用的方式
git checkout topic1
git rebase master
但它在应用第一个补丁时以冲突告终。我手动解决了它们。但是当我尝试 git rebase --continue
时,它告诉我“Nothing to commit”。
如何处理这个问题,为什么会出现这个问题?
最佳答案
(我冒昧地修改了你的图表以表明当你 rebase 时,所有提交都会改变,即使内容没有。你的新提交集将与原创。)
这里最简单的解决方案是使用--onto
。查看此链接,从文本“这里是移植主题分支的方式”开始:git rebase
所以在你的情况下,它将是:
git rebase --onto commit_7.1 commit_7 topic1
换句话说,将commit_7之后直到(包括)topic1 的提交,移植到commit_7.1。
不过,您可能仍然会遇到必须手动修复的 merge 失败。
我建议您在执行此操作时,在 topic1 提交上创建一个额外的分支。称其为 topic1old 或其他名称。如果 rebase 不正确,这将使返回更容易;您可以将您的 topic1 硬重置回该提交。
编辑:为什么简单的 git rebase master
不起作用?
如果您不另行说明,git rebase 会假定您正在对上游分支进行 rebase 。
但是正如您从我修改图表的方式中看到的那样,topic1 和 master 不再有太多共同点。如果您对 master 进行简单的 rebase ,topic1 将尝试将您的所有提交 rebase 到 master 上的所有提交。这意味着你会得到类似的东西:
现在 Git 很聪明,不会重复已经存在的提交。显然,如果您进行了 X、Y 和 Z 的更改,然后稍后的提交再次进行这些更改,Git 只会忽略后面的提交,因为这些更改已经存在。
但是让事情变得棘手的是您对提交 4 的更改。结果是之后的所有提交都提交到另一组代码。这留下了进行大量 merge 的潜在必要性。
使用 --onto 可以解决这个问题,因为它允许您使用不同的基数。你是说:“我不关心 commit_4(因为我更改了它)也不关心 commit_5、_6 和 _7(因为我已经 merge 了它们,它们与我的主题分支中的它们基本相同)。因此,从 commit_8 开始,仅在我已经处理过的内容之上重新设置那些更改。”
关于Git:如何编辑具有多个后代分支的旧提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253865/
我有一个表(id, parent_id, data),其中parent_id 指向同一表中的另一行(或者为空)。 是否有一种标准的方法来查询(1)某个 id 的所有祖先和(2)某个 id 的所有后代?
networkx 中是否有函数/方法来识别给定(可选加权)距离内的所有祖先/后代? 例如,可以有效地产生与下面的函数相同的结果的东西? import networkx g = networkx.DiG
在我的窗口事件中,如果指针点击父对象或其子对象/后代对象,它应该做一些事情。问题是事件无法访问 parent 的 child 和孙子。条件存储在 targetIsInsideParent 变量中。 H
我有一个非常好的 DirectMySQL 单元,可以使用,我希望它成为 TDataset 的后代,这样我就可以将它与 QuickReport 一起使用,我只想要使用来自 TDataset 的 Dire
我将 mysql 表定义为: 类别:category_id、category_name、parent_category_id 我正在寻找一个很好的 sql 查询来检索给定 category_id 的所
我的 TCustomControl 后代使用线程,这涉及使用 InvalidateRect 进行无效化。我遇到这样的情况:当线程正在工作时关闭程序时,我不会停止 Destroy 中的线程,因为即使在进
我的 TMemo 后代有构造函数 constructor TMyMemo.Create(AOwner: TComponent); begin inherited Create(AOwner);
我正在尝试创建一个像Delphi 2009的TButtonedEdit这样的组件。它是一个自定义的TEdit,左右各有2个按钮。 在我的版本中,我使用 2 个 TSpeedButton 对象作为左右按
我遇到了一些问题,看起来使用 JQuery 应该很容易做到。基本上我的页面上有一个表格。表格中的每一行都有一个复选框和一个金额单元格。我正在尝试编写一个函数来遍历每一行并检查复选框是否已选中。如果是这
如何使用 linq 对包含相同对象的子集合 X 层深的对象集合获得与 doc.Descendants() 类似的功能? 最后一个嵌套集合包含需要获取的数据,所有其他父集合只是分组。我可以将集合转换为
我有一个引用自身的表,如下所示: CREATE TABLE Foo ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, parent INT NULL, nam
我正在尝试添加以下约束来对齐表格单元格内的图像。 self 指的是 ImageView 将驻留在其中的 UITableViewCell 对象: var imageViewTest = UIIm
我有以下标记: content Link Link Link
这里是一个简化的mxl结构'xml', Alice30 Bob31 Charley29 Dory25 这是我尝试过的; XmlDocument submiss
我正在尝试编写一个类,该类将在其对象创建时运行一个线程,并在对象被删除后停止该线程。 class MyThread : public boost::thread { public: MyThr
我有一个表 width: 100%以及该表中的元素 width: 40em; max-width: 100% , 但当浏览器窗口太小时,该元素仍在拉伸(stretch)表格。 我希望这个元素的宽度固定
我正在尝试在 Delphi 2007 中创建基于 TCustomComboBox 的自定义控件,但我陷入了第一个障碍。 我试图覆盖下拉列表的显示方式,主要是显示的文本,查看 stdctrls.pas
我正在尝试创建一个具有集合属性的自定义组件。但是,如果我尝试在设计时通过单击对象检查器中的“...”按钮来打开集合编辑器,则不会发生任何情况。我缺少什么? 这是我的 TCollection 后代:
我正在使用WPF DataGrid,并放置了DataGridTemplateColumn。因为该列应该对复杂类型(这是一个对象)执行编辑,所以我决定放置一个打开弹出窗口的切换按钮。代码如下:
我有一个基本的 UserControl (BaseControl.cs),上面有一个 OK 和 Cancel 按钮。单击按钮时,将触发一个事件。通常其他 UserControl 对象继承自 BaseC
我是一名优秀的程序员,十分优秀!