【问题标题】:How to remove redundant GitHub entry如何删除多余的 GitHub 条目
【发布时间】:2017-01-18 19:01:53
【问题描述】:

如下所示,由于创建 GitHub 存储库的尝试失败,我现在在 GetHubVisualStudio\WallE 中有一个 WallE 条目,在 GitHubVisualStudio\WallE\WallE 中有另一个条目。

我已经尝试了我能想到的一切来摆脱这个重复的条目。我什至删除了整个文件夹并从 GitHub 重新克隆了它,而多余的条目又回来了。我该如何摆脱这个多余的东西?

更新:通过 Process Monitor 浏览,看起来这可能是 Visual Studio 缓存存储库位置并且无法清除错误条目的情况。由于他们已将存储库条目从标准注册表条目移动到应用程序配置单元,因此除非有可以以某种方式访问​​应用程序配置单元的注册表编辑器,否则似乎没有什么可做的。

【问题讨论】:

  • 重复的你的存储库,还是仅仅在你的文件系统上?
  • 鉴于它在我删除文件夹时消失了,然后在我重新克隆时又回来了,我会说它在存储库本身中。
  • 我认为部分问题在于 WallE\WallE 仍然存在,即使其中没​​有 .git 文件夹。如果我重命名那个文件夹,我可以去掉那个条目,但是一旦我重命名它,多余的条目也会回来。

标签: git github team-explorer


【解决方案1】:

从索引和树中删除文件

我不知道你的 GUI 工具,但你可以从命令行(假设 Cygwin 或 Git-Bash)删除一个目录,如下所示:

cd C:/Users/rmorl/Documents/GitHubVisualStudio/WallE
git rm -rf WallE
git commit -m 'Remove duplicate directory tree.'
git push

清除工作树

如果仍有问题,请确保先备份。然后,您可能会考虑合并以下命令:

  • git ls-files # list files that Git knows about
  • git clean -fdx # purge working tree of files/dirs not in the Git index

最后的手段

如果所有其他方法都失败了,请安装像 BFG 这样的工具来对您的存储库执行手术,然后将结果强制推送回上游。

【讨论】:

  • 我尝试了所有这些,并且在我恢复文件夹后它就回来了。 (supposed 是 WallE\WallE,它只是不应该显示为好像它是一个单独的存储库。)重命名文件夹似乎是摆脱额外存储库条目的唯一解决方案。我没有尝试 BFG,因为我一开始并不太了解 GIT,并且不想弄乱可能对存储库造成奇怪事情的更强大/更复杂的东西。
【解决方案2】:

我的第二个理论是,它是 Visual Studio 中的一个缓存位置导致了这个问题,结果证明是正确的。此解决方案不适合胆小的人。 :)

  1. 关闭所有 Visual Studio 实例。
  2. 找到privateregistry.bin。对我来说,这是在%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_3c403b8b
  3. 运行 regedit.exe。
  4. 单击允许加载自定义配置单元的键,例如 HKEY_USERS。
  5. 单击文件、加载 Hive,然后加载 privateregistry.bin。 (如果它无法打开,您可能需要发挥创意。我选择复制它并加载它,然后稍后将其复制回来,此时文件不再受到保护。重新启动也可能是一个答案.)
  6. 导航到Software\Microsoft\VisualStudio\15.0_3c403b8b\TeamFoundation\GitSourceControl\Repositories
  7. 删除您在那里找到的所有无效条目。
  8. 卸载 hive,然后退出 Regedit。
  9. 如果您必须在第 5 步中获得创意,请将文件复制回原始文件。

下次打开 Visual Studio 时,无效条目将不再显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2018-03-24
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多