如何在TFS存储库中使用git-tfs和idiomatic git分支?

Ant*_*ean 49 git tfs git-tfs git-branch

我如何使用git-tfs惯用法?

  • git习惯用法是检出存储库根目录的分支.签出分支将使用该分支的内容替换目录的内容.

  • 所述TFS成语是签出每个分支在不同的目录信息库(即使主或主干分支)的根目录下.签出分支会将其放在当前分区旁边的新目录中.

使用git-tfs,我可以克隆一个TFS存储库或分支到一个git存储库.我想以 与git分支习语一致的方式在具有多个分支的TFS存储库上工作.但我不确定技术上可行或推荐什么:)


克隆整个TFS存储库

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

> git tfs clone http://<tfsurl>:8080 $/main
Run Code Online (Sandbox Code Playgroud)

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

[master]> dir
  trunk
  feature-logon
  feature-search
  release-0.0.1
Run Code Online (Sandbox Code Playgroud)

添加远程每个TFS分支

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

> git init .
[master]> git tfs clone http://<url> $/main/trunk .
Run Code Online (Sandbox Code Playgroud)

然后

[master]> git checkout -b feature-logon
[feature-logon]> git tfs clone http://<url> $/main/feature-logon .
Run Code Online (Sandbox Code Playgroud)

我知道这在技术上是不正确的,但我不知道没有比赛更好(我唯一的TFS回购非常大,试验需要很长时间)

rip*_*per 32

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

git tfs clone http://<tfsurl>:8080 $/main/trunk
Run Code Online (Sandbox Code Playgroud)

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

git tfs branch --init $/MyProject/MyTFSBranch
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

git tfs branch --init $/main/feature-logon
Run Code Online (Sandbox Code Playgroud)

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

git tfs branch --init --all
Run Code Online (Sandbox Code Playgroud)

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

git tfs clone http://<tfsurl>:8080 $/main/trunk --with-branches
Run Code Online (Sandbox Code Playgroud)

这个新命令的文档在这里.随意提供反馈,以改善它...