我有一个由tfs管理的存储库。 但是在本地,我想通过git进行管理,并将更改推送到tfs。 一旦我在那里创建了git存储库,VS2013 中的团队资源管理器会显示此解决方案仅由git管理。 如果我尝试编辑任何文件,它会抱怨文件只能读取,我无法将其保存为以前的版本。 所以我的问题是是否有办法让Visual Studio 2013完全忘记git,并将其作为tfs存储库进行管理。 我可以从命令行管理git。 或者在进行更改时是否有从tfs repo检出文件的方法?
我有一个由tfs管理的存储库。 但是在本地,我想通过git进行管理,并将更改推送到tfs。 一旦我在那里创建了git存储库,VS2013 中的团队资源管理器会显示此解决方案仅由git管理。 如果我尝试编辑任何文件,它会抱怨文件只能读取,我无法将其保存为以前的版本。 所以我的问题是是否有办法让Visual Studio 2013完全忘记git,并将其作为tfs存储库进行管理。 我可以从命令行管理git。 或者在进行更改时是否有从tfs repo检出文件的方法?
gitdir: _git
,因为您刚刚将其从 .git 文件夹重命名。 - Chin对于你的情况,Git-tf
可能是更好的解决方案,它将基于你的 TFVC 源代码控制文件夹创建一个本地 git 仓库。完成后,你可以直接从命令行将更改推送到 TFVC。由于你已经熟悉命令行,这可能非常适合你。
当同一文件夹中存在 git 仓库时,强制 Visual Studio 保持在 Team Foundation 源代码控制上目前非常困难。
作为可怕的解决方法,关闭你的解决方案,将 .git
文件夹重命名为 _git
并重新加载解决方案。这应该会将 TFVC 返回,但如果没有,请使用 文件->源代码控制->高级->更改源代码控制 将解决方案重新绑定到 TFVC。然后在检入后再次关闭解决方案,将 _git
重命名回 .git
并重新加载。
正如 Ed 在评论中提到的,你可以将你的 .git 文件夹移动到另一个文件夹,像这样:
\MyProjects
\GitRoot
| \.git
\MySolution
\MyFirstProject
\MySecondProject
这将允许Visual Studio使用TFVC绑定,您可以使用git --git-dir=\MyProjects\GitRoot\.git
命令参数告诉git命令行.git目录在其他位置。
您可以设置名为GIT_DIR
的环境变量来一次性解决这个问题,如@hlovdal所提到的。
@Eric提到的另一个技巧是创建名为.git
的文本文件,并在其中添加以下内容:
gitdir: _git
将 .git 文件夹重命名为 _git,然后确保您将 _git
添加到 .gitignore
中。
提示:要在 Windows Explorer 中创建以 .
开头的文件,可以使用 New/Text Document 选项:
然后将文件命名为 .git.
(确保已选中“显示文件扩展名”选项):
.git
目录,并使用git --git-dir=...
命令指向正确的位置。 - Edward Thomson--git-dir
,您可以设置环境变量GIT_DIR
(以及GIT_WORK_TREE)。 - hlovdal我建议执行以下步骤:
TOOLS Tab
Options
选项Source Control
Plugin Selection
项目中,将下拉列表中的值输入为 None
您可以使用一些注册表技巧从Visual Studio 2013中删除git支持。当然,这有点冒险,但是我使用此方法删除git支持后尚未遇到任何问题:
http://blog.markrendle.net/disable-the-git-source-control-add-in-in-vs2013-permanently/
这只需要删除与GUID {11B8E6D7-C08B-4385-B321-321078CDD1F8}
相关的所有内容。
不好的解决方案:关闭你的解决方案,将.git文件夹重命名为_git,然后重新加载解决方案。感谢jessehouwing。