如何“撤销”一个git提交,同时保留其他所有提交

7 浏览
0 Comments

如何“撤销”一个git提交,同时保留其他所有提交

我有一个包含许多提交的git仓库。假设我们从过去到现在有以下这些提交:

  1. 小的修改
  2. 大的功能添加
  3. 小的修改
  4. 小的修改

现在我们已经确定出于业务原因需要移除这个大的功能,但我想保留自此以后的修改。我应该如何操作呢?

0
0 Comments

如何撤销一个Git提交,同时保留其他所有提交

问题的原因:我想撤销一个Git提交,但是想要保留其他所有的提交。

解决方法:执行一个交互式的rebase操作,然后从列表中删除不想要的提交。

具体步骤如下:

1. 执行以下命令:

$ 'git rebase -i HEAD~4'

这将打开一个交互式的rebase编辑器。

2. 在编辑器中,你将看到一个包含所有提交的列表。

3. 删除你想要撤销的提交所在的行。

4. 保存并关闭编辑器。

这样,你就成功地撤销了一个Git提交,同时保留了其他所有的提交。

参考链接: https://stackoverflow.com/a/13061212/1024740

0
0 Comments

如何“撤销”一个git提交而保留其他所有提交的问题是因为使用git-rebase命令过于繁琐,而且会丢失历史记录。解决方法是使用git revert命令。

具体操作如下:

1. 使用以下命令撤销提交:$ git revert <commit 2的哈希值>

2. 这样你的提交历史将显示你先前提交了一个功能,然后又撤销了它。

然而,当尝试撤销一个合并提交时,哈希值不起作用,它要求一个数值,但我不确定是什么数值......

当尝试撤销一个合并提交时,你需要告诉git revert基于哪个父提交来评估补丁。如果你想撤销合并进来的更改,你需要使用git revert -m 1 <commit 2的哈希值>命令。

我建议查看git revert的文档。

0