【问题标题】:git cvsimport: what does 'remote' refer to?git cvsimport:“远程”指的是什么?
【发布时间】:2018-06-21 10:56:01
【问题描述】:

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

【问题讨论】:

  • 你检查git remote -v了吗?它说什么?
  • @LasseVågsætherKarlsen 它什么也不返回。我更新了问题
  • 有一些关于这些起源的文档 - git-scm.com/docs/git-cvsimport - 看看它是否解释了它。请注意,如果您不创建名为 origin 的远程,则没有什么可以阻止您创建名为 origin/x 的分支,它只是一个与其他分支名称一样的分支名称,只有当您添加一个名为 origin 的远程时,它才会使用“远程origin上的分支x”的意思,这个意思充其量是松散的。

标签: git git-svn cvs git-cvs


【解决方案1】:

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

正如the documentation 所说:

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

这些不需要包含cvsimport 存储的任何内容的特殊分支。当您想要创建一个名为origin远程时,他们不会创建一个origin 名称。

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

【讨论】:

    猜你喜欢
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多