我可以安全地将本地Git存储库移动到我的硬盘中的其他位置吗?

时间:2014-02-18 10:19:28

标签: git version-control atlassian-sourcetree

我最近开始使用Git / SourceTree / Bitbucket。我可以安全地将本地Git存储库移动到我硬盘中的其他位置吗?

由于Git忽略了一些大文件,我无法从远程存储库中提取存储库以获取所有文件的精确副本。

如果我只是将包含.git的主目录移动或复制到其他地方,是否会导致Git混乱?如果绝对路径对Git很重要,我猜它会,但我不确定。

1 个答案:

答案 0 :(得分:18)

不,移动或复制.git/文件夹不会导致git出现问题; git没有以任何方式连接到你的repo,git不关心绝对路径,只关心项目文件夹中的相对路径。

Git只是您计算机上的可执行文件。它可以在任何地方运行,只要它在你的路径中。我经常将各种.git/文件夹拖到不同的地方,甚至拖到我的拇指驱动器上(通常我拖动整个存储库文件夹,但我也只是自带了.git/文件夹)。关于git的好处是,关于你的repo的所有内容都在该文件夹中。您甚至不需要随身携带工作树文件。如果将.git/文件夹或副本放到另一个文件夹中,则可以在该文件夹中git checkout master,git将在那里重建工作树。

这是一切都是数据的好处。 Git根本没有附加到您的存储库。你只需要调用git就可以在你的存储库上工作来创建或更改那里存在的数据,然后再让它完全重新开始。

请记住,您可以克隆自己的本地仓库:

$ git clone oldrepo newrepo

Git会将oldrepo复制到newreponewrepo可以是本地文件系统中任意位置的路径),在此过程中创建该文件夹。此外,newrepo会自动添加一个遥控器origin - 指向oldrepo,因此您可以在oldrepo中工作,然后在newrepo中获取它{1}}文件夹。如果您不想要那个遥控器(它是无害的),您可以在新的仓库中进行git remote rm origin。如果要将复制的repo挂钩到服务器,请执行git remote add origin <url>。如果您不确定网址是什么,请在git remote -v中执行oldrepo并从那里复制网址。