git: 将远程设置为本地存储库本身
git: setting a remote to the local repository itself
让我们创建一个新的 git 存储库:
$ git init test
$ cd test
然后添加一个遥控器,指向我们自己
$ git remote add origin .
注意点,指的是测试目录。
这似乎按预期运行。您可以进行提交、设置分支跟踪以及自行推送和拉取。我 运行 唯一奇怪的是,如果你提交,然后获取,如果你去推送,你未推送的更改已经存在(为什么会发生这种情况是有道理的,但它可能是意外的)。
此功能稳定/预期吗?像这样使用遥控器会有什么后果?任何 git 命令用法都会在这样的存储库上出错吗?有实际用例吗?
我认为这可能有助于获得减去复制的 git 功能(而不是推送到同一台计算机上的裸存储库)
这似乎是一个奇怪的功能,令我惊讶的是我在任何地方都没有发现任何关于它的讨论。
这不是一个特定的功能。它只是自然而然地脱离了这样一个事实,即远程是 URL 的简称,我们将在其中找到其他一些 Git 存储库。通常 .
不会是 URL——例如你必须拼出 file:///path/to/git/repo
——但是 Git 接受某些扩展的 URL,包括任何是一个有效的路径名。1
不过,这确实让他们头疼了两件事:
通常 origin
比 短 长 长 。在这里,origin
现在是 .
的“短”,即 更短 。
通常,另一个Git 存储库是另一个 Git 存储库。在这里,它是您自己的 Git 存储库。这就是让某些事情感觉有点奇怪的原因。
尽管没有特别的理由为“其他”Git 存储库使用 name:只需使用 git fetch . <em>refspec</em>
或 git 推送。 <em>refspec</em>
。这让你没有为这两个操作设置上游的便利,但你可以将一个(本地)分支的上游设置为另一个(本地)分支,这将获得大部分便利。
1与 一样,在此处使用路径名会改变一些可见的行为:特别是 Git 将在克隆时创建硬链接到local-file-system 对象,如果可能的话。使用 file://
URLs 禁用此功能(--no-local
也是如此)。因此,虽然路径占据语法位置 for a URL,但它并不是真正的 URL.
让我们创建一个新的 git 存储库:
$ git init test
$ cd test
然后添加一个遥控器,指向我们自己
$ git remote add origin .
注意点,指的是测试目录。
这似乎按预期运行。您可以进行提交、设置分支跟踪以及自行推送和拉取。我 运行 唯一奇怪的是,如果你提交,然后获取,如果你去推送,你未推送的更改已经存在(为什么会发生这种情况是有道理的,但它可能是意外的)。
此功能稳定/预期吗?像这样使用遥控器会有什么后果?任何 git 命令用法都会在这样的存储库上出错吗?有实际用例吗?
我认为这可能有助于获得减去复制的 git 功能(而不是推送到同一台计算机上的裸存储库)
这似乎是一个奇怪的功能,令我惊讶的是我在任何地方都没有发现任何关于它的讨论。
这不是一个特定的功能。它只是自然而然地脱离了这样一个事实,即远程是 URL 的简称,我们将在其中找到其他一些 Git 存储库。通常 .
不会是 URL——例如你必须拼出 file:///path/to/git/repo
——但是 Git 接受某些扩展的 URL,包括任何是一个有效的路径名。1
不过,这确实让他们头疼了两件事:
通常
origin
比 短 长 长 。在这里,origin
现在是.
的“短”,即 更短 。通常,另一个Git 存储库是另一个 Git 存储库。在这里,它是您自己的 Git 存储库。这就是让某些事情感觉有点奇怪的原因。
尽管没有特别的理由为“其他”Git 存储库使用 name:只需使用 git fetch . <em>refspec</em>
或 git 推送。 <em>refspec</em>
。这让你没有为这两个操作设置上游的便利,但你可以将一个(本地)分支的上游设置为另一个(本地)分支,这将获得大部分便利。
1与 file://
URLs 禁用此功能(--no-local
也是如此)。因此,虽然路径占据语法位置 for a URL,但它并不是真正的 URL.