更改Git存储库目录位置。

使用Windows的Git / Github,如果我有一个存储库,这个目录: C:\dir1\dir2 ,我需要做什么来将回购文件移动到C:\dir1 ? 我显然可以物理地复制和粘贴这些文件,但是我需要在Git端做些什么?

我在GitHub上有这个回购,我使用Git Bash和GitHub for Windows。

只需复制整个工作目录的内容(包括隐藏的.git目录)。 这将把整个工作目录移动到新目录,不会影响GitHub上的远程存储库。

如果您正在使用Windows的GitHub,则可以使用上述方法移动存储库。 但是,当您单击应用程序中的存储库时,将无法find它。 要解决这个问题,只需用!!点击蓝色的圆圈,select查找它,然后浏览到新的目录。

我不确定这个问题,所以这里有两个答案:

如果你想移动你的仓库:

只需复制整个存储库(使用其.git目录)。

.git结构中没有绝对的path,也没有任何东西阻止它被移动,所以在移动之后你无事可做。 到github的所有链接(参见.git/config )将像以前一样工作。

如果你想移动存储库中的文件:

只需移动文件。 然后添加在git status列出的更改。 下一个commit将会做必要的。 你会很高兴得知没有文件会被重复:在git中移动文件几乎没有成本。

如果您使用GitHub for Windows ,那么只需执行以下步骤:

  1. closuresGitHub for Windows和所有其他打开文件的应用程序到当前的目录path。
  2. 如上所述将整个目录移动到新的目录位置。
  3. 打开GitHub for Windows并点击蓝色(!)“找不到存储库”图标。 然后会打开一个对话框,您将看到一个“查找”button,您可以在其中重新定位新的存储库path。

虽然这个问题涉及到Git for Windows,但即使在searchVisual Studio Tools For Git(VS 2012中的扩展,VS 2013中的本地支持)时,这似乎也是最重要的结果。

使用上面的解决scheme作为指导,我确定Visual Studio Git Tools可以在本地移动仓库(甚至是所有仓库的整个目录结构),非常容易。

1)closuresVisual Studio。 2)将Repo文件夹移到新的位置。 3)打开Visual Studio。 打开Team Explorer。 切换到“连接”视图(顶部的插头图标)。 3a)如果Repos仍​​然显示旧path,请单击刷新强制更新。 4)在本地移动的回购应该不再显示在“ 本地Git存储库 ”中。 5)单击添加 (不是新build或克隆),然后select要添加的回购文件夹。

在步骤5中,您确实只是提供了一个searchpath,search会自动包含所有子文件夹。 如果您在单个根目录下组织了多个回购协议(独立回购仅具有相同的父文件夹),那么select该家长将包括在下面find的所有回购。

例如:E:\ Repos \ RepoA E:\ Repos \ RepoB E:\ Repos \ RepoC

在Visual Studio团队资源pipe理器[Add]>“E:\ Repos \”> [Add]将所有三个返回到本地存储库。

我使用Visual Studio混帐插件,我有一些运行在IIS上的网站,我想移动。 一个简单的方法,为我工作:

  1. closuresVisual Studio。

  2. 移动代码(包括git文件夹等)

  3. 点击新位置的解决scheme文件

这将刷新映射到新的位置,使用已移动的现有本地git文件。 一旦我回到Visual Studio,我的团队资源pipe理器窗口显示新位置的回购站。

这不适合我。 我从(例如)c:\ project1 \移动回购到c:\ repo \ project1 \和Git for windows不显示任何更改。

git状态显示错误,因为其中一个子模块“不是git存储库”,并显示旧的path。 例如(更改名称以保护IP)

致命的:不是一个混帐存储库:C:/project1/.git/modules/subproject/subproject2致命:'git status –porcelain'在子模块子项目中失败

我必须手动编辑子模块中的.git文件,以指向子模块回购的正确相对path(在主要回购的.git / modules目录中)