Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在共享git存储库上哪些操作是安全的?_Git - Fatal编程技术网

在共享git存储库上哪些操作是安全的?

在共享git存储库上哪些操作是安全的?,git,Git,使用--shared选项克隆git存储库时,在源存储库上哪些操作是安全的?具体来说,如果在原始存储库中运行git fetch origin,克隆的存储库是否会损坏 例如,给定的存储库~/repos/foo.git(它是一个裸git存储库),当我使用git clone--shared~/repos/foo.git创建一个新的存储库时,然后在~/repos/foo.git内运行git fetch origin,克隆的存储库是否会损坏?很难找到一个规范的源代码来说明git fetch是否曾经删除孤立对

使用
--shared
选项克隆git存储库时,在源存储库上哪些操作是安全的?具体来说,如果在原始存储库中运行
git fetch origin
,克隆的存储库是否会损坏


例如,给定的存储库
~/repos/foo.git
(它是一个裸git存储库),当我使用
git clone--shared~/repos/foo.git
创建一个新的存储库时,然后在
~/repos/foo.git
内运行
git fetch origin
,克隆的存储库是否会损坏?

很难找到一个规范的源代码来说明
git fetch
是否曾经删除孤立对象(即,如果它曾经触发
git gc--auto
)。但是,如果您想确保自动垃圾收集永远不会运行,可以将其粘贴到裸源存储库的配置中:

git config --global gc.auto 0

这将阻止它自动运行GC。除了自动gc之外,
git fetch
不会删除对象(它可能会根据您的配置删除引用,但最糟糕的是会使对象成为孤立对象,只要您不使用gc就可以了)。
git-fetch
的手册页明确指出,只要源repo中的任何操作不删除现有对象,它们都是正常的。

很难找到一个规范的源代码来说明
git-fetch
是否删除过孤立对象(即,如果它触发了
git-gc--auto
)。但是,如果您想确保自动垃圾收集永远不会运行,可以将其粘贴到裸源存储库的配置中:

git config --global gc.auto 0
这将阻止它自动运行GC。除了自动gc之外,
git fetch
不会删除对象(它可能会根据您的配置删除引用,但最糟糕的是会使对象成为孤立对象,只要您不使用gc就可以了)。
git fetch
的手册页明确指出,只要源repo中的任何操作不删除现有对象,它们都是正常的