克隆git repo并保持原始版本不变

问题描述

我正在尝试扩大以前从事的项目,同时保持原始状态不变。我该怎么做?有人告诉他们只需将原始git存储库克隆到另一个存储库中,但是我不清楚是否一旦更改了代码,是否会影响原始git存储库和项目。

解决方法

除非您明确推动原件,否则本地更改将不会应用于原件。那是git的基本功能之一:只有push实际上会更改远程存储库。直到您通过推(或从另一侧拉)分发这些动作之前,任何commit / branch / revert / ...都是纯本地的。

如果要确保您不小心将其推到原始位置,可以在克隆后remove the remote(当然,这也意味着您将无法从那里拉出新更改)您将其重新添加)。

或者,您可以保留远程服务器(以便继续拉动),但可以将推送URL配置为无效的described in this question

,

您可以克隆一个存储库,然后从克隆原始存储库的位置创建一个新存储库。然后,您可以在其他位置克隆该新存储库,然后在此处进行更改。但是,为什么需要2个存储库?考虑使用分支

,

您可以分支您的存储库以保留两个独立的项目。

,

克隆回购后,有两个不同的回购位于两个不同的位置。您对其中任何一个所做的任何事情都不会影响另一个。两者之间的唯一关系是 cloneed 仓库,其遥控器之一将指向原始仓库-名为origin。您可以在克隆存储库中以git remote -v列出它们--v代表--verbose,显示网址。

在没有其他设置的情况下,克隆回购只能以唯一的方式来实现原始回购的方式是当您从{{1} 克隆存储库。

您甚至可以通过使用git push克隆存储库中删除origin远程服务器来打平领带。现在无处可去。但这通常不是您想要的。当原始存储库有更改(修复,更新等)时,您大多也会希望在克隆中进行这些更改。在这种情况下,您可以在克隆存储库中进行git remote remove origingit fetch来带来这些更改。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...