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

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


当前回答

我使用Visual Studio git插件,我有一些网站运行在IIS上,我想移动。一个简单的方法对我很有效:

关闭Visual Studio。 移动代码(包括git文件夹等) 单击新位置的解决方案文件

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

其他回答

未来报告:2018年4月。

我想在我的Mac和Windows上规范化我的本地回购,它们最终在不同的本地文件夹中。

Windows 10客户端让我经历了“找不到”、“>”、“定位”的例行程序,乏味但并不可怕。还需要在选项中更新本地“克隆路径”以供将来使用。

当我合并mac文件夹时,Github客户端又发现了它们-我什么都不用做!

这对我没用。我将一个repo从(例如)c:\project1\移动到c:\repo\project1\, Git for windows没有显示任何变化。

Git状态显示错误,因为其中一个子模块“不是Git存储库”,并显示旧路径。例如(为保护知识产权而更改名称)

C:/project1/.git/modules/subproject/subproject2 致命:“git状态—瓷器”在子模块子项目失败

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

更基于Git的方法是使用cd或复制粘贴对本地副本进行更改,然后将这些更改从本地存储库推到远程存储库。

如果您尝试检查本地回购的状态,它可能会显示“未跟踪的更改”,这实际上是重新定位的文件。要强制执行这些更改,您需要使用

$ git add -A
#And commiting them
$ git commit -m "Relocating image demo files"
#And finally, push
$ git push -u local_repo -f HEAD:master

希望能有所帮助。

如果你正在使用GitHub桌面,那么只需要执行以下步骤:

关闭GitHub桌面和所有其他打开文件的应用程序到当前目录路径。 如上所述,将整个目录移动到新目录位置。 打开GitHub桌面,点击蓝色(!)“仓库未找到”图标。然后将打开一个对话框,你将看到一个“Locate…”按钮,它将打开一个弹出窗口,允许你将其路径指向新的位置。

虽然前面的答案似乎都说你可以移动目录,在.git结构中没有绝对路径。当我使用Cygwin的git时,我发现这是不真实的。

当我移动我的git回购时(实际上我从备份中恢复了它,但由于我的驱动器结构在新系统上发生了变化)。我收到了一条错误信息

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

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