【发布时间】:2014-04-09 03:38:33
【问题描述】:
我们计划在几乎所有其他 Git 操作中同时使用 git ls-remote <repository> [<refs>…] 而无需任何附加参数。我正在寻找确认ls-remote 是只读的,因此它不会破坏任何其他操作。
【问题讨论】:
标签: git concurrency ls-remote
我们计划在几乎所有其他 Git 操作中同时使用 git ls-remote <repository> [<refs>…] 而无需任何附加参数。我正在寻找确认ls-remote 是只读的,因此它不会破坏任何其他操作。
【问题讨论】:
标签: git concurrency ls-remote
是的,这是一个只读操作。
builtin/ls-remote.c 中没有任何内容建议任何修改本地 repo 的操作。
It sets as transportTRANS_OPT_UPLOADPACK,也用于另外两个 git 命令(不修改 remote 存储库):
git clone (builtin/clone.c:919) 和 git fetch (builtin/fetch.c:807)
/* The program to use on the remote side to send a pack */
#define TRANS_OPT_UPLOADPACK "uploadpack"
它要求远程仓库发送包,仅此而已。
【讨论】:
clone 或fetch 会是只读的(它们显然不是!?)。但是, ls-remote.c 实际上对于本地存储库来说看起来非常轻量级。似乎只需要阅读.git/config 就可以了。