【问题标题】:TFS and Dangling Commits that are referenced in backlog items待办事项中引用的 TFS 和悬空提交
【发布时间】:2017-12-15 17:09:02
【问题描述】:

我有一个配置为使用 git 的 TFS 源代码存储库。我遵循不强制推送其他开发人员使用的任何分支的规则——但是,我们的团队有一条规则说我们可以在远程“拥有”分支,这样我们就可以备份我们的代码。其他开发人员不得从这些“拥有”的分支分支。通常在我的日常工作中,我会重新排序本地提交、合并本地提交、重做 cmets 等。然后在某些时候我想推送我的更改,因此它们不仅在我的笔记本电脑上。当然,如果我执行许多之前列出的操作,遥控器将不允许推送。所以我强推。在某个时候,我对自己的工作感到满意,我会从这个“拥有的”分支创建一个拉取请求到我们的开发分支——此时我也会删除我一直在使用的本地。一旦 PR 被批准并合并到开发中,原始的远程“owend”功能分支也将被删除。

一切正常。 但是,TFS 有一项功能,允许您将提交链接到工作项。要使用此功能,您将 #IdOfWorkItem 添加到提交中。 TFS 会自动将工作项链接到提交,您可以从工作项中浏览该提交。太好了。

但是,它也会将这些提交从我们的“拥有”功能分支链接起来。我想知道如果我添加 #Id 注释、推送、然后破坏提交并强制推送会发生什么。正如预期的那样,提交链接到具有给定#id 的相应积压日志项。出乎意料的是,当我通过强制推送破坏该提交时,链接仍然存在,甚至可以导航到。 从那以后我了解到这是一个悬空提交,在 git 中很正常。有多种方法可以处理它们,并且可以将它们清理干净。

问题:

  1. TFS git 是否曾经清理过悬空提交?
  2. 如果提交和工作项之间的链接会发生什么情况 提交被清除
  3. 上述行为是否对 TFS 具有破坏性 - git 存储库中断对这些悬空提交有何影响?
  4. 如果在这种情况下没有强制推 备份本地存储库的建议是什么 在将它们推送到遥控器之前?

【问题讨论】:

    标签: git tfs


    【解决方案1】:
    1. TFS git 是否曾经清理过悬空提交?

    没有。

    1. 如果提交和工作项之间的链接会发生什么情况 提交被清除

    链接仍然存在,您必须手动删除它。尽管 提交被破坏,它仍然存在但不属于任何分支 更多。

    1. 上述行为是否对 TFS 具有破坏性 - git 存储库中断对这些悬空提交有何影响?

    基本上,答案是否定的。

    1. 如果在这种情况下强制推动不是答案,那是什么
      在将本地存储库推送到本地存储库之前备份它们的建议 远程?

    除了强制推送,您可以使用只是推送来备份您的 回购。

    【讨论】:

      猜你喜欢
      • 2014-11-04
      • 2011-09-23
      • 2022-08-18
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2017-06-15
      相关资源
      最近更新 更多