如何修复git提交历史而不丢失数据?

如何修复git提交历史而不丢失数据?,git,Git,我做了很多承诺来测试我的存储库。现在我想修复我的历史而不丢失数据。我的历史是这样的: A -> B -> C -> TEST D -> TEST E 但应该是这样的: A -> B -> C (C + TEST D + TEST E) 我怎么做?rebase或stash能帮我吗 UPD好这是我的提交历史记录: commit 9f2c2e66d344aa27a5e681eb64c84738f2cd1d49 Author: babobka <babobk

我做了很多承诺来测试我的存储库。现在我想修复我的历史而不丢失数据。我的历史是这样的:

A -> B -> C -> TEST D -> TEST E
但应该是这样的:

A -> B -> C (C + TEST D + TEST E)
我怎么做?
rebase
stash
能帮我吗

UPD好这是我的提交历史记录:

commit 9f2c2e66d344aa27a5e681eb64c84738f2cd1d49
Author: babobka <babobka@bk.ru>
Date:   Sat Jan 14 23:35:36 2017 +0300

    Fixed files

commit 9ab55a4e4352daa9e5c27e9243d79a8c14dd6551
Merge: b52872c 856ee3f
Author: bbk <dolgopolov.work@gmail.com>
Date:   Sat Jan 14 23:29:16 2017 +0300

    Merged in develop (pull request #1)

    New tests. New project structure. FindBugs plugin.

commit 856ee3fb4725564c1c5c976eacadb6e21aa2b937
Author: babobka <babobka@bk.ru>
Date:   Sat Jan 14 23:24:02 2017 +0300

    New tests. New project structure. FindBugs plugin.

commit b52872c300bde67154cec3b732755a47f9ff76cd
Author: babobka <babobka@bk.ru>
Date:   Mon Jan 9 23:36:02 2017 +0300

    Very big refactor.Can not remember what was done.

commit 0b330267150db40fb814bfc21387762d80a99e44
Author: babobka <babobka@bk.ru>
Date:   Tue Jan 3 01:13:05 2017 +0300

    First commit
提交9f2c2e66d344aa27a5e681eb64c84738f2cd1d49
作者:巴博卡
日期:2017年1月14日星期六23:35:36+0300
固定文件
提交9AB55A4E4352DA9E5C27E9243D79A8C14DD6551
合并:B52872C856EE3F
作者:bbk
日期:2017年1月14日星期六23:29:16+0300
合并到开发中(拉取请求#1)
新的测试。新的项目结构。FindBugs插件。
提交856ee3fb4725564c1c5c976eacadb6e21aa2b937
作者:巴博卡
日期:2017年1月14日星期六23:24:02+0300
新的测试。新的项目结构。FindBugs插件。
提交b52872c300bde67154cec3b732755a47f9ff76cd
作者:巴博卡
日期:2017年1月9日星期一23:36:02+0300
非常大的重构。不记得做了什么。
提交0b330267150db40fb814bfc21387762d80a99e44
作者:巴博卡
日期:2017年1月3日星期二01:13:05+0300
第一次提交

我做了
git rebase-I 9ab55a4e4352daa9e5c27e9243d79a8c14dd6551-m“Rebasing”
,但我看不到任何更改。还是一样的历史

您可以使用
rebase
命令的交互模式

git rebase -i HEAD~2
其中HEAD~2-2是您需要进行操作的提交数量。 交互式模式为您显示简短的帮助。 标记要加入到一起的提交的
squash
(通过替换
pick
word)


小贴士:第一次做得更好创建分支并在分离的分支中进行。在分离的分支中,您可以检查结果,以更好地了解重基是如何工作的。如果遇到一些问题或意外行为,可以通过签出原始分支来简单地回滚。

我理解的可能的重复是,您希望将最后几个提交“挤压”为一个?查看这是否有助于您编辑重基交互模式配置?你是不是把一些单词改成了壁球?@oklas,什么???你是从@acm转到上面的链接的吗?您是否阅读了
将第二次和后续提交中的“pick”替换为“squash”或“fixup”,如