git - 如何从远程仓库中删除特定提交
问题描述
我有一个远程仓库,总共有 7 次提交(我们称它们为 A - G,G 是最近的提交)。提交 C 和 E 实际上并不保证一个全新的提交,我想将它们从远程提交历史记录中删除,同时保持提交 G 作为 HEAD。我怎样才能做到这一点?
解决方案
git文档对此进行了如下说明:
还可以使用 rebase 删除一系列提交。如果我们有以下情况:
E---F---G---H---I---J topicA
然后命令
git rebase --onto topicA~5 topicA~3 topicA
将导致删除提交 F 和 G:
E---H'---I'---J' topicA
如果 F 和 G 在某些方面存在缺陷,或者不应该是 topicA 的一部分,这很有用。请注意, --onto 的参数和参数可以是任何有效的 commit-ish。
但这首先仅适用于本地回购。因此,当将此修改后的提交历史推送到您的远程时,您需要有足够的权限才能这样做。有关详细信息,请参阅强制推送。我可以根据我自己的经验告诉你,这可能是 MS TFS 中的一个问题。
推荐阅读
- python - gevent 和 asyncio 代码可以一起工作吗?
- html - 如何在大小更改后使用格式图像
- debian - BeagleBone Black IOError: [Errno 16] 使用 I2C 与 BNO055 传感器通信时设备或资源繁忙
- python - 复制代码有效,编写代码无效?
- java - 我在项目单击侦听器上的导航抽屉不起作用
- android - 显示键盘时布局不滚动且视图重叠 Android 约束布局
- html - 如何在网格布局自动宽度容器单元格中省略内容?
- loops - C 编程 - 循环
- python - Tensorflow 警告 - 无法加载动态库“cupti64_101.dll”;dlerror: cupti64_101.dll 未找到
- file - 当前的屏幕分辨率是否保存在任何地方的文件中?(窗口 7)