git - 如何针对 TFS 存储库使用 git-tfs 和惯用的 git 分支?

标签 git tfs git-branch git-tfs

如何地道地使用 git-tfs?

  • git 习惯用法是将分支 checkout 到存储库的根目录。 checkout 分支会将目录的内容替换为该分支的内容。

  • TFS 的习惯用法是检查存储库根目录下的不同目录中的每个分支(即使是 master 或 trunk 分支)。 checkout 一个分支会将其放置在当前目录旁边的新目录中。

使用 git-tfs ,我可以克隆一个 TFS 存储库或分支到一个 git 存储库。我想以与 git 分支习惯用法一致的方式处理具有多个分支的 TFS 存储库。但我不确定技术上可行或推荐的方法:)


克隆整个 TFS 存储库

如果我从 TFS 克隆整个存储库

> git tfs clone http://<tfsurl>:8080 $/main

这会给我一个包含 所有 TFS 分支作为目录的 git master

[master]> dir
  trunk
  feature-logon
  feature-search
  release-0.0.1

为每个 TFS 分支添加一个远程

我不知道我是否可以(或如何)将 git 远程映射到每个 TFS 分支。

> git init .
[master]> git tfs clone http://<url> $/main/trunk .

然后

[master]> git checkout -b feature-logon
[feature-logon]> git tfs clone http://<url> $/main/feature-logon .

我知道这在技术上是不正确的,但如果不玩我就不知道更好(我唯一的 TFS 存储库非常大,试验需要很长时间)

最佳答案

如果使用 git-tfs 克隆,现在可以使 TFS 分支成为正确的 Git 分支.现在在稳定版本中!您首先克隆的不是整个存储库,而是主干:

git tfs clone http://<tfsurl>:8080 $/main/trunk

然后运行branch --init,这会在 Git 存储库中创建一个新分支

git tfs branch --init $/MyProject/MyTFSBranch

在你的情况下:

git tfs branch --init $/main/feature-logon

或者在新的克隆存储库上使用 --all 标志来创建 TFS 服务器上存在的所有分支。

git tfs branch --init --all

您还可以使用标志 --with-branches 直接克隆所有分支:

git tfs clone http://<tfsurl>:8080 $/main/trunk --with-branches

这个新命令的文档是 here .请随时提供反馈以改进它...

关于git - 如何针对 TFS 存储库使用 git-tfs 和惯用的 git 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129959/

相关文章:

git - 如何将 Azure DevOps 服务器存储库与 Azure DevOps 服务管道集成

Git 分支工作流程困境

git - 有没有办法缩短 git 命令中的分支名称?

git - 黑白之间的差异'git submodule update'和'git pull'

git - 如何在 git 中配置我的代码编辑器?

Git rebase -i 不在终端中/仅适用于 sudo

visual-studio-2012 - TFS 创建一个 $tf 文件夹,其中包含 GB 的 .gz 文件。我可以安全地删除它吗?

tfs - 无法使用 tf.exe 删除 VSO 工作区

git - fork git 分支并使用 SmartGit 查看它们

Git difftool - KDiff3 无法编辑文件