如何地道地使用 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/