微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

git:设置本地存储库本身的远程

如何解决git:设置本地存储库本身的远程

让我们创建一个新的git存储库:

$ git init test
$ cd test

然后添加一个指向自己的遥控器

$ git remote add origin .

注意点,指的是测试目录。

这似乎按预期运行。您可以进行提交,设置分支跟踪以及从自己推入和拉出。我遇到的唯一奇怪的事情是,如果您先提交然后进行取回,那么如果您进行推送,则已经存在未推送的更改(这是为什么会发生,但这很可能是意外的)。

功能稳定/有意图吗?使用这样的遥控器会有什么后果?像这样的存储库上会出现任何git命令用法错误吗?有实际用例吗?

我当时认为这可能对获得git功能减去复制很有好处(与推送到同一台计算机上的裸存储库相反)

这似乎是一个奇怪的功能,但令我惊讶的是,我在任何地方都没有找到关于它的任何讨论。

解决方法

这不是特定功能。自然而然地是,远程是URL的缩写,我们将在其中找到其他Git存储库。通常,.不会是URL,例如您必须拼写file:///path/to/git/repo,但是Git会接受某些扩展URL,包括任何有效路径名。 1

尽管如此,它的确使两件事反了:

  • 通常origin short ,而长度是更长。在这里,origin现在是.的“缩写”,它是较短的

  • 通常,另一个Git存储库是另一个 Git存储库。在这里,这是您自己的Git存储库。这就是让某些事情有些怪异的原因。

尽管没有特别的理由为“其他” Git存储库打上 name 的名称:只需使用git fetch . refspecgit push . refspec。这使您无法方便地为这两个操作设置上游,但是您可以将(本地)分支的上游设置为另一个(本地)分支,这将为您带来大部分便利。


1 jthill notes in a comment一样,在此处使用路径名会更改一些可见的行为:特别是,如果Git在克隆时,它将硬链接到本地​​文件系统对象可能。使用file:// URL会禁用此功能(--no-local也是如此)。因此,尽管路径占据URL的语法位置 ,但它实际上并不是URL。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。