更改Git存储库目录位置.

173 git github github-for-windows

使用Git/Github for Windows,如果我有一个包含此目录的存储库:C:\dir1\dir2,我需要做什么才能将repo文件移动到C:\dir1?我显然可以在物理上复制和粘贴文件,但是我需要在Git端做什么?

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

cto*_*tor 207

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

如果您使用的是GitHub for Windows,则可以使用上述方法移动存储库.但是,当您单击应用程序中的存储库时,将无法找到它.要解决此问题,只需单击带有!的蓝色圆圈,选择"查找",然后浏览到新目录.

  • 但是GitHub For Windows如何跟踪本地仓库呢?在那一端必须有一些配置. (3认同)
  • 当我在Windows上这样做时,它迫使我创建一个新的repo. (3认同)
  • 它不应该要求您创建一个新的存储库:如果发生这种情况,您显然错过了一个git文件(可能是一个隐藏的文件)。发生在我身上,当我再次尝试时,我发现我错过了一些。 (2认同)

Den*_*ret 37

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

如果要移动存储库:

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

.git结构中没有绝对路径,没有任何东西阻止它被移动,因此移动后你无需做任何事情.所有到github的链接(参见.git/config)都将像以前一样工作.

如果要在存储库中移动文件:

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


Mik*_*ver 20

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

  1. 关闭GitHub for Windows以及打开文件到当前目录路径的所有其他应用程序.
  2. 将上面提到的整个目录移动到新目录位置.
  3. 打开GitHub for Windows并单击蓝色(!)"找不到存储库"图标.然后会打开一个对话框,您将看到一个"查找"按钮,您可以在其中重新定位新的存储库路径.


Phi*_*erg 11

尽管之前的答案似乎都说您可以移动目录并且.git结构中没有绝对路径。在使用 Cygwin 的 git 时,我发现这是不正确的。

当我移动我的 git repo 时(实际上我从备份中恢复了它,但是随着我的驱动器结构在我的新系统上发生了变化,我将它恢复到了不同的驱动器)。我收到一条错误消息,例如

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我使用 grep 在 [core] 部分的 .git/config 文件中找到了一个工作树变量,它保存了我的 git repo 的绝对路径。改变这个解决了我的问题。


Ger*_*vis 6

尽管问题涉及Windows的Git,但即使在搜索Visual Studio Tools for Git(VS 2012中的扩展,VS 2013中的本机支持)时,这似乎也是最好的结果。

使用以上解决方案作为指导,我确定Visual Studio Git Tools使本地移动存储库(甚至所有存储库的整个目录结构)变得非常容易。

1)关闭Visual Studio。2)将Repo文件夹移动到新位置。3)打开Visual Studio。打开团队资源管理器。切换到“连接”视图(顶部的插头图标)。3a)如果Repos仍​​然显示旧路径,请单击Refresh强制更新。4)在本地移动的存储库不应再显示在“ 本地Git存储库 ”中。5)单击添加(不是新的或克隆的),然后选择要添加的repo文件夹。

在第5步中,您实际上只是提供了搜索路径,并且搜索自动包括了所有子文件夹。如果您在单个根目录下组织了多个存储库(独立存储库只有相同的父文件夹),则选择父存储库将包括在该目录下找到的所有存储库。

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

在Visual Studio Team Explorer中,[添加]>“ E:\ Repos \”> [添加]将全部三个返回本地存储库。