git - 从一个 repo git clone 并将 origin 设置为另一个是 "safe"吗?

标签 git

所以我倾向于有一个 repo 的最近克隆,我需要在“非常接近”的网络上工作(通常在本地磁盘上)。还有一个“官方”服务器,我的工作流程确实希望它成为起源,但它经常非常慢(因为它重载,或者在远程网络上,或者两者兼而有之)。

(这个本地repo是官方服务器的克隆,一般会过期一两周,但是这个repo非常大,并且有从老版本的VCS导入的大约十年的历史,所以本地clone加上fetch从远程要快得多)

如果我 git clone -o local/path/to/repo 然后 git remote add -f origin URI-for-offical-repo 我最终会得到同样的事情 (*) git clone URI-for-offical-repo 会给我吗?

我特别警惕任何可能使我的 repo 推送不同的细微差别。此外,如果我开始使用这种加速克隆的方法,“本地” repo 可能是使用这种方法制作的,可能是多代。

(*) 相同加上额外的远程名称“本地”,以及任何未从本地推送到官方服务器的内容。

最佳答案

简短回答:是的,可能。

长答案:“来源”只是您通常想要推送的位置的别名。只要新目标与您从中 pull 的存储库(或空存储库)相关,并且您有写入权限,它就应该是安全的。

注意:我并没有真正认为您的“伪代码”命令示例是合理的。但是克隆然后更改“来源”的 url 的概念是一个明智的概念。当服务器地址移动时,我自己完成了,或者我决定更改我的公共(public)存储库位置等。

但是请注意,如果新源不是一个完全空的存储库,或者不是本地存储库的旧克隆(没有比本地存储库更新的提交),请使用

git push --mirror #e.g. implicitly to "origin"

如果您对它有完全的写入权限,则可以覆盖和丢弃远程上的分支。 (当不小心将 .git/config 数据从一个存储库复制并粘贴到一个不相关的存储库时,我设法自己做了。[幸运的是它有很多最新的克隆;但我是当删除消息在我的屏幕上滚动时,出汗了几秒钟;)])

关于git - 从一个 repo git clone 并将 origin 设置为另一个是 "safe"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098095/

相关文章:

git - 通过 pull 来镜像一个 git 仓库?

Git clean 和 smudge 过滤器什么都不做

git - 无法打开与您的身份验证代理的连接

git - 为什么 `git pull` 会输出 "Already up-to-date"以外的信息?

git commit 触发器阻止字节顺序标记

存储在 origin 中的 Git 别名

git - 如何在 Azure DevOps 中更改分支名称

git - 远程选择性 git 忽略?

git - Intellij - Git 错误 : The remote end hung up unexpectedly

git - 删除不属于 git 的大旧文件