删除Visual Studio Online中的中间提交

时间:2014-12-31 13:49:31

标签: git azure-devops git-rewrite-history tfvc

我多次编辑了README.md,因为我没有看到预览按钮。现在我的提交历史记录中充满了无用的提交。

我可以删除其中一些,或者至少隐藏它们吗?

1 个答案:

答案 0 :(得分:7)

注意

历史记录重写可能会使您的源代码管理系统处于非常混乱的状态。如果出现任何问题,请确保您的来源有良好的备份。

GIT中

根据您的团队项目设置,Readme.md存储在Git存储库中,您可以完全重写历史记录并强制将压缩的提交推送回TFS,从而使其忘记中间数据。这是使用git rebase完成的,无法通过Visual Studio Online站点或Visual Studio Tools for Git完成。您需要从命令行执行此操作。

整个过程是explained very well in the Git-SCM wiki。您需要执行以下步骤:

  1. Force Push permissions的帐户克隆包含readme.md。
  2. 的存储库
  3. 使用git rebase -i HEAD~6(6是要回放的提交数量)
  4. 使用Squashmerge the commits together
  5. 使用git push --force origin master强制在远程
  6. 上强制重写历史记录

    注意:这将更改提交的哈希值以及之后的每个提交。执行此操作后,要么警告所有其他贡献者重新同步,要么确保在您提交这些提交后没有其他人参与回购。

    TFVC

    如果使用TFVC配置了Team Project,则过程略有不同。

    1. 确保您拥有要保留的文件的副本。
    2. 使用tf destroy $/Teamproject/readme.md销毁源代码管理中的文件,如果需要,您可以使用/keephistory /stopat:C12345选项在文件历史记录末尾销毁特定更改集中的数据。
    3. 现在将备份文件复制回原位
    4. 并按照您的惯例进行检查,或者从命令行tf add $/teamproject/reqadme.md后跟tf checkin进行检查。如果您保持历史,TFVC将重新连接它。如果您完全破坏了历史记录,TFVC将只添加一个新文件。