git tf告诉我;无法锁定";办理登机手续时;我怎样才能修好它?

git tf告诉我;无法锁定";办理登机手续时;我怎样才能修好它?,git,tfs,git-tf,Git,Tfs,Git Tf,我正在使用git tf来推进TFS项目。有时,当我尝试将一个或多个提交检查到TFS时,会收到如下消息: 正在连接到TFS… 正在签入$/MyProject:0% git tf:无法锁定$/MyProject 这是什么意思?是什么阻止我锁门?我该如何解决这个问题呢?为什么会发生这种情况 使用标准TFS,一次只能签入一个提交。但是使用Git,您可以一次推送一系列提交 因此,git tf努力使您的提交集保持原子性。如果有人在你登记时登记,历史记录可能会混淆;它无法正确合并 为了防止这种情况,git t

我正在使用git tf来推进TFS项目。有时,当我尝试将一个或多个提交检查到TFS时,会收到如下消息:

正在连接到TFS…
正在签入$/MyProject:0%
git tf:无法锁定$/MyProject


这是什么意思?是什么阻止我锁门?我该如何解决这个问题呢?

为什么会发生这种情况

使用标准TFS,一次只能签入一个提交。但是使用Git,您可以一次推送一系列提交

因此,git tf努力使您的提交集保持原子性。如果有人在你登记时登记,历史记录可能会混淆;它无法正确合并

为了防止这种情况,git tf在签入时临时锁定整个源代码树。但是,如果其他人已经锁定了部分源代码树,它就不能这样做

如何不修复它

您将看到在某些地方建议使用--no lock参数:

git tf checkin --no-lock
这不是一个好的解决方案。它忽略了潜在的混乱历史问题,而不是解决它

如何修复它

  • 根据您正在使用的TFS版本,下载并安装相应版本的
  • 运行TFS的伙伴
  • 导航到工具>状态助手
  • 清除用户名字段
  • 设置一个足够宽的日期范围,以涵盖项目的整个历史。如果愿意,可以筛选“项目名称”字段
  • 单击搜索。您将获得项目中所有已签出文件的列表
  • 单击“锁定类型”列标题以按该列排序。大多数文件在该列中可能都没有。您正在查找任何已“锁定”的文件。这在二进制文件中最常见,因为它们无法合并。默认情况下,TFS将在签出它们时以独占方式锁定它们
  • 一旦你发现哪些文件被锁定,就去和锁定它们的人谈谈,并协商解除锁定。如果此人不再在那里工作,您可能想让TFS管理员移除锁
  • 删除所有锁后,再次点击TFS Sidekicks中的Search,您应该会看到所有文件的锁类型都是“None”。现在再次尝试git tf签入,这次应该可以正常工作

  • 我必须“撤销”本地挂起的更改,然后它就可以正常工作了。这是一个