【问题标题】:Finding files that are not checked into repo查找未签入 repo 的文件
【发布时间】:2019-12-05 16:30:33
【问题描述】:

是否有一种简单的方法可以在我的 Visual Studio 项目中查找未签入到我的存储库中的文件?

过去,当我从存储库中获取代码库时,有时我才意识到某些文件 - 由于某种原因 - 没有被签入存储库。

我最近买了一台新笔记本电脑,并将我的应用程序代码下载到我的新机器上。我现在在新笔记本电脑上运行应用程序时遇到错误,但在旧笔记本电脑上运行完美。我的第一个想法是两台机器之间存在配置差异,因此我将代码下载到旧机器上的新文件夹中,并开始出现与新笔记本电脑相同的错误。如果我从旧机器上的原始文件夹运行应用程序,它运行良好。

这让我觉得我可能在 repo 和原始文件夹上的代码之间存在一些差异。结果,如果我从 repo 中获取代码,就会出现错误。如果我尝试从旧笔记本电脑的原始文件夹中签入代码,Visual Studio 会告诉我没有要签入的内容。

那么,有没有一种简单的方法可以让我查看旧笔记本电脑上是否有任何文件未检入到 repo 中?

顺便说一句,我正在运行 Visual Studio 2019 - 带有最新的更新/补丁 - 我的存储库位于 Azure DevOps 上并使用 TFVC。

【问题讨论】:

    标签: visual-studio azure-devops visual-studio-2019 tfvc


    【解决方案1】:

    从工作区根目录中的 Visual Studio 开发人员命令行运行 tf vc status /format:detailed /recursive 应该可以很好地概览未签入的文件和有待更改的文件。

    C:\Users\JesseHouwing\source\Workspaces\xxx>tf vc status /format:detailed /recursive
    -----------------------------------------------------------------------------------------------------------------------
    Detected Changes:
    -----------------------------------------------------------------------------------------------------------------------
    $/xxx/test.txt
      User       : Jesse Houwing
      Date       : zaterdag 27 juli 2019 21:20:00
      Lock       : none
      Change     : add
      Workspace  : SHARKIE
      Local item : [SHARKIE] C:\Users\JesseHouwing\Source\Workspaces\xxx\test.txt
    
    0 change(s), 1 detected change(s)
    

    除非您指定 /nodetectchanges 标志,否则它应该自动检测文件。

    或者,如果您的.tfignore 文件被明确指定,您可以运行tf vc add * /recursive 来自动为当前不受版本控制的所有文件创建挂起的更改。 If needed, edit your tfignore file before running the add command。添加/noignore 绕过忽略文件,但这可能会添加binobjpackages 文件夹,请小心。


    tf.exe 隐藏在 Visual Studio 的深处,访问它的最简单方法是使用开发人员命令提示符:

    我的安装已经放在这里了:

    C:\Users\JesseHouwing\source\Workspaces\xxx>where tf
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe
    

    【讨论】:

    • 感谢您的回复。我的电脑上似乎没有tf.exe。收到tf is not recognized as an internal or external command 错误。我用谷歌搜索它,它建议我指定tf.exe 的路径,但它根本不在我的电脑上。我需要安装什么来运行这个命令?
    • 再次感谢您的回复。我让它工作,结果绝对是可怕的!大约 33,520 个文件不在 repo 中。它们中的大多数都不是非常重要,例如 NPM 包的许可证文件,但是在我的 ASP.NET Core 项目中有一些合法的cs 文件没有签入到 repo。我想先解决这个问题,然后再看看为什么会这样。将这些文件签入仓库的最简单方法是什么?例如,我看到了我在 C# 中创建的类文件。在它旁边,没有与我的 repo 相关联的图标——这意味着 VS 可能认为它不是项目的一部分。
    • 只需右键单击缺少的类文件,即ReviewerDao.cs,然后在上下文菜单中,我可以选择从项目中“排除”它,因此很明显它是项目的一部分。我还得到一个选项,上面写着“将文件添加到源代码管理”。不知道为什么它首先不包含在源代码管理中。正如我所说,要做的第一件事是将它们包含在回购中。将它们添加到源代码管理的最简单方法是什么?
    • 其实,我看到你的回答,你很友善地回答了我的问题。
    • 实际上,在我的仓库中,我根本没有看到node_modules,所以我认为它没有被签入。但是,我的 C# 类文件在我的项目文件夹中,它肯定应该已经签入了。不知道为什么会被忽略。
    猜你喜欢
    • 2019-07-29
    • 2013-03-21
    • 2023-03-26
    • 2016-01-10
    • 1970-01-01
    • 2011-08-19
    • 2020-12-25
    • 2019-04-11
    • 1970-01-01
    相关资源
    最近更新 更多