我从本地cvs存储库中复制了文件。当我做
git cvsimport -C . -d path-to-cvs-folder some-module
它创建带有分支的git repo,这样我就可以将整个repo推送到github:
git push --mirror git@github.com:xxx.git
但是cvsimport
会创建master
分支,还会创建origin
分支,指向与master
相同的提交。没有创建任何遥控器:git remote -v
不返回任何信息
问题是:origin
分支的目的是什么?在手册中,有-r
开关让我命名该分支。但是为什么呢?迁移时没有远程仓库,只有本地复制的cvs文件。它背后的想法是什么?
答案 0 :(得分:0)
我从未使用过git cvsimport
,但是从文档中可以明显看出它可以增量使用,即,您可以导入一些CVS存储库,然后再导入自上一个版本以来的所有更改。进口。 -r
开关及其创建的名称显然是供cvsimport自己内部使用的:当您进行增量导入时,cvsimport使用存储在origin
分支中的某种东西(或其他任何东西)您在此处选择的名称)以允许其仅导入由cvsps
推断出的 new 变更集。
如果要一次性导入CVS存储库,请考虑使用cvs2git或cvs-fast-export。
这些不需要特殊的分支,其中包含cvsimport
存储在那里的任何内容。当您要创建名为origin
的远程时,他们不会创建这样的origin
名称。
(顺便说一句, Git 可以同时具有名为{{1}的分支和名为{{1的 remote }}。远程跟踪名称位于origin
命名空间中,而分支名称位于origin
命名空间中,因此它们永远不会冲突;并且远程名称本身仅位于配置文件中。 Git为方便和理解而在这里发生冲突的缩写名称,例如refs/remotes/
,但这对想使用缩写名称的人来说非常混乱。)