Git Tfs 克隆仅显示主分支上的提交
Posted
技术标签:
【中文标题】Git Tfs 克隆仅显示主分支上的提交【英文标题】:Git Tfs clone only showing the commits on the master branch 【发布时间】:2021-07-11 09:44:51 【问题描述】:我已经使用 git-tfs 将 TFS 存储库克隆到我的本地计算机中。我使用了以下命令:
git tfs clone <server URL> <repository path> <local directory> --branches=auto
当我在源代码树中打开存储库时,我只能看到直接提交到主分支的提交。 git log
显示提交历史,但是,源树仅显示主分支提交。我需要查看所有分支中提交的完整历史记录,但我没有成功。
编辑:
如果我尝试使用 --branches=all
,我也会收到一些错误。
2021-04-19 10:46:19.9024 [Debug] git command time: [00:00:00.0468850] init
2021-04-19 10:46:19.9493 [Debug] No .gitignore file specified to commit...
2021-04-19 10:46:19.9493 [Debug] No .gitignore file specified to use...
2021-04-19 10:46:22.9008 [Debug] Looking for all branches...
2021-04-19 10:46:24.5489 [Debug] GitTfs.Core.GitTfsException: error: cloning the whole repository or too high in the repository path doesn't permit to manage branches!
=> If you want to manage branches with git-tfs, clone one of this branch instead :
PS:if your branch is not listed here, perhaps you should convert the containing folder to a branch in TFS.
at GitTfs.Util.GitTfsCommandRunner.Run(GitTfsCommand command, IList`1 args) in C:\gittfs\src\GitTfs\Util\GitTfsCommandRunner.cs:line 36
at GitTfs.GitTfs.Main(GitTfsCommand command, IList`1 unparsedArgs) in C:\gittfs\src\GitTfs\GitTfs.cs:line 83
at GitTfs.GitTfs.Run(IList`1 args) in C:\gittfs\src\GitTfs\GitTfs.cs:line 48
at GitTfs.Program.Main(String[] args) in C:\gittfs\src\GitTfs\Program.cs:line 28
分支结构类似如下:
$/App/App.root/App [*]
|
+- $/App/App.root/backend/csv/Version-1.0
| |
| +- $/App/App.root/backend/csv/Version-1.1
| |
| +- $/App/App.root/backend/csv/Version-1.1/Fixes
| |
|
当我在$/App
中使用git tfs
时,它只会拉取主分支中的提交。我看不到包含所有分支及其提交的完整树。
【问题讨论】:
你没有提供足够的信息来说明你想要实现什么,你的分支结构是什么等等。尝试github.com/git-tfs/git-tfs/blob/master/doc/commands/…找到一个分支来克隆。 @Philippe 请查看编辑。 查看我编辑的答案。 【参考方案1】:--branches=auto
只初始化合并在<local directory>
中的分支。
如果你想要一切,你应该使用--branches=all
查看你的分支结构,正确的命令应该是
git tfs clone <server URL> $/App/App.root/App <local directory> --branches=all
【讨论】:
这只是一个例子。在这种情况下,$/App/App.root/App
只是一个分支。还有其他几个,例如$/App2
和$/App3
。有没有办法可以一次克隆与$/App
和 '$/App2' 等相关的所有分支,而不是通过分支结构并单独克隆它们?
@Aithorusa 不同的应用程序很可能应该放在不同的存储库中。在决定如何构建 Git 存储库时,请考虑 Git 和 TFVC 之间的差异;把所有东西都放在一个巨大的仓库中很少是最好的方法。
@Aithorusa 如果所有分支都与 $/App/App.root/App 链接,它们将被克隆。否则,不,这对于 git-tfs 是不可能的。但如果它们不是链接,您可以将它们克隆到不同的存储库中。最后获取同一存储库中的所有历史记录,如果需要,可以链接所有历史记录...以上是关于Git Tfs 克隆仅显示主分支上的提交的主要内容,如果未能解决你的问题,请参考以下文章