0

我在本地从旧的 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 文件。它背后的想法是什么?

4

1 回答 1

0

我从未使用过git cvsimport,但从文档中可以清楚地看出它可以增量使用,即,您可以导入一些 CVS 存储库,然后导入自上次导入以来的任何更改。开关和由它创建的-r名称显然是供 cvsimport 自己内部使用的:当您执行增量导入时,cvsimport 使用存储在origin分支中的某些内容(或您在此处选择的任何名称)来允许它导入仅由 推导出的cvsps变更集。

正如文档所说:

如果您正在执行 CVS 存储库的一次性导入,请考虑使用 cvs2git 或 cvs-fast-export。

这些不需要包含cvsimport存储在那里的任何东西的特殊分支。origin当您想要创建远程命名时,他们不会创建一个会妨碍您的名称origin

(顺便说一下,Git可以同时拥有一个名为的分支origin和一个名为的远程origin分支。远程跟踪名称存在于refs/remotes/命名空间中,而分支名称存在于refs/heads/命名空间中,因此它们永远不会发生冲突;并且远程名称本身只存在于配置文件。只有缩写的名称,如origin/master,Git 使用的方便和理解在这里冲突。但这对于想要使用缩写名称的人来说是非常混乱的。)

于 2018-06-21T15:54:53.997 回答