删除Visual Studio Online中的中间提交

Gér*_*zet 3 git git-rewrite-history tfvc azure-devops

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

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

jes*_*ing 7

警告

历史重写可以使您的源控制系统处于非常混乱的状态.如果出现任何问题,请确保您拥有良好的源备份.

混帐

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

整个过程在Git-SCM wiki中得到了很好的解释.您需要执行以下步骤:

  1. 从具有强制推送权限的帐户克隆包含readme.md的存储库.
  2. 使用git rebase -i HEAD~6(6是要倒带的提交数)
  3. 使用Squash的提交合并在一起
  4. 用于git push --force origin master强制远程重写历史记录

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

TFVC

如果您的团队项目使用TFVC配置,则过程略有不同.

  1. 确保您拥有要保留的文件的副本.
  2. 使用"在源控件中销毁文件" tf destroy $/Teamproject/readme.md,如果需要,可以使用该/keephistory /stopat:C12345选项在文件历史记录末尾销毁特定更改集中的数据.
  3. 现在将备份文件复制回原位
  4. 并检查它作为你通常会做或命令行tf add $/teamproject/reqadme.md后面tf checkin.如果您保持历史,TFVC将重新连接它.如果您完全破坏了历史记录,TFVC将只添加一个新文件.