繁体   English   中英

更改 Git 存储库目录位置。

[英]Change Git repository directory location.

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

我在 GitHub 上有这个 repo,我在 Windows 上使用 Git Bash 和 GitHub。

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

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

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

如果你想移动你的仓库:

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

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

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

只需移动文件。 然后添加git status中列出的更改。 下一次commit将做必要的。 您会很高兴得知没有文件会被复制:在 git 中移动文件几乎是免费的。

如果您使用的是GitHub Desktop ,那么只需执行以下步骤:

  1. 将打开文件的GitHub Desktop和所有其他应用程序关闭到当前目录路径。
  2. 如上所述将整个目录移动到新的目录位置。
  3. 打开GitHub Desktop并单击蓝色 (.)“未找到存储库”图标。 然后将打开一个对话框,您将看到一个“定位...”按钮,该按钮将打开一个弹出窗口,允许您将其路径定向到新位置。

虽然之前的回答好像都是说移动目录就可以,.git结构中没有绝对路径。 当我使用来自 Cygwin 的 git 时,我发现这是不正确的。

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

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

我使用 grep 发现在 [core] 部分的 my.git/config 文件中是一个 worktree 变量,它保存我的 git repo 的绝对路径。 改变这个解决了我的问题。

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

使用上述解决方案作为指南,我确定 Visual Studio Git 工具可以非常轻松地在本地移动存储库(甚至所有存储库的整个目录结构)。

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

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

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

在 Visual Studio Team Explorer 中 [Add] > "E:\Repos\" > [Add] 会将所有三个返回到本地存储库。

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

  1. 关闭视觉工作室。

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

  3. 单击新位置的解决方案文件

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

我使用 Github Desktop for Windows,我想移动存储库的位置。 如果您移动目录并在软件中选择新位置,没有问题。 但是如果你设置了一个错误的目录,你会得到一个致命的错误并且没有第二次机会重定位到好的目录。 所以要修复它。 您必须将项目文件复制到坏目录中,通过 Github Desktop 对其进行 reconize,之后,您可以将您的项目再次移动到另一个文件夹中,并在软件中进行重新定位。 无需为此关闭 Github Desktop,它会实时检查文件夹。

希望这会对某人有所帮助。

这对我不起作用。 我将一个存储库从(例如)c:\project1\ 移动到 c:\repo\project1\ 并且 Git for windows 没有显示任何更改。

git status 显示错误,因为子模块之一“不是 git 存储库”并显示旧路径。 例如(更改名称以保护 IP)

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

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

来自未来的报告:2018 年 4 月。

我想规范我的 Mac 和 Windows 上的本地存储库,它们最终位于不同的本地文件夹中。

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

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

如果您已经移动/修改了新目标中的代码,但想继续使用相同的 git 存储库...

在 Windows 中,您只需将隐藏的.git文件夹从旧位置复制粘贴到新位置即可。

然后像往常一样使用 git。

要在每次克隆其中一个时设置存储库的默认本地路径,您只需克隆一次存储库并设置Localpath:/ your-path,然后github会自动将该路径检测为默认路径。

一种更基于 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

希望能帮助到你。

-首先检查当前文件夹中包含git repo的所有目录 $ ls -lals -al

- 识别这个文件夹

**.git**

- 使用此命令将文件夹移动到您需要的位置,

$ mv.git这里是你想要的目录

注意:>该目录不会影响 git 历史记录,也不会影响远程连接>考虑到您要移动到的目录的树(路径

如果您使用 Visual Studio,请使用 Teams Explorer > Connect 选项卡 > Local Git Repositories 中的 Add 将现有的本地 repo 引入您的可用 repos。 没有大惊小怪,没有麻烦。

将本地存储库链接到不同的远程存储库

1-删除与远程存储库的所有连接:在项目文件夹内:

  • git rm.git (从本地存储库中删除所有数据)
  • git status (我必须说它没有链接到任何)

2-链接到一个新的远程仓库

  • git init启动一个本地仓库
  • git remote add origin urlrepository.git连接远程仓库
  • git remote -v确认链接到远程仓库

3-将更改添加到本地存储库并推送

  • git pullgit pull origin master --allow-unrelated-histories如果本地和远程仓库中的 git 历史不同。
  • git add.
  • git commit -m" Message "
  • git push -u origin master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM