使用Git / Github for Windows,如果我有一个包含此目录的存储库:C:\dir1\dir2
,我需要做什么才能将repo文件移动到C:\dir1
?我显然可以在物理上复制和粘贴文件,但是我需要在Git端做什么?
我在GitHub上有这个回购,我在Windows上使用Git Bash和GitHub。
答案 0 :(得分:182)
只需复制整个工作目录内容(包括隐藏的.git
目录)。这会将整个工作目录移动到新目录,不会影响GitHub上的远程存储库。
如果您使用的是GitHub for Windows,则可以使用上述方法移动存储库。但是,当您单击应用程序中的存储库时,将无法找到它。要解决此问题,只需单击带有!的蓝色圆圈,选择“查找”,然后浏览到新目录。
答案 1 :(得分:33)
我不确定这个问题,所以这里有两个答案:
如果您想移动存储库:
只需复制整个存储库(及其.git
目录)。
.git
结构中没有绝对路径,没有任何东西可以阻止它被移动,所以移动后你无需做任何事情。所有到github的链接(见.git/config
)都可以像以前一样工作。
如果要在存储库中移动文件:
只需移动文件即可。然后添加git status
中列出的更改。下一个commit
将做必要的事情。你会很高兴得知没有文件会被复制:用git移动文件几乎是没有成本的。
答案 2 :(得分:16)
如果您使用GitHub for Windows
,请执行以下步骤:
GitHub for Windows
和所有其他应用程序关闭到当前目录路径。GitHub for Windows
,然后点击蓝色(!)“找不到存储库”图标。然后会打开一个对话框,您将看到一个“查找”按钮,您可以在其中重新定位新的存储库路径。答案 3 :(得分:4)
虽然问题涉及Git for Windows,但这似乎是最好的结果,即使在搜索Visual Studio Tools For Git时(VS 2012中的扩展,VS 2013中的本机支持)。
使用上面的解决方案作为指导我确定Visual Studio Git Tools在本地非常容易地移动repos(甚至整个目录结构)。
1)关闭Visual Studio。 2)将Repo文件夹移动到新位置。 3)打开Visual Studio。打开团队浏览器。切换到"连接"查看(顶部的插头图标)。 3a)如果Repos仍显示旧路径,请单击“刷新”以强制更新。 4)本地移动的回购不应再显示在" 本地Git存储库"中。 5)单击添加(不是新的或克隆),然后选择要添加的repo文件夹。
在第5步中,您实际上只是提供搜索路径,搜索会自动包含所有子文件夹。如果您在单个根目录下组织了多个repos(独立的repos只有相同的父文件夹),那么选择父目录将包括在下面找到的所有repos。
实施例: E:\回购\ RepoA E:\回购\ RepoB E:\回购\ RepoC
在Visual Studio团队资源管理器中[添加]> " E:\回购\" > [添加]将全部三个返回到本地存储库。
答案 4 :(得分:2)
我使用Visual Studio git插件,我想在IIS上运行一些网站。一种对我有用的简单方法:
关闭Visual Studio。
移动代码(包括git文件夹等)
点击新位置的解决方案文件
使用已移动的现有本地git文件刷新映射到新位置。一旦我回到Visual Studio,我的团队资源管理器窗口就显示了新位置的回购。
答案 5 :(得分:2)
尽管以上所有答案似乎都表明您可以移动目录,但.git结构中没有绝对路径。使用Cygwin的git时,我发现这是不正确的。
当我移动git repo时(实际上,我从备份中还原了它,但是随着新系统上驱动器结构的改变,它又移到了另一个驱动器上)。我收到类似
的错误消息fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory
我使用grep在[core]部分的.git / config文件中发现是一个工作树变量,该变量保存了git repo的绝对路径。更改此设置对我来说已经解决了问题。
答案 6 :(得分:1)
我使用Windows的Github Desktop,我想移动存储库的位置。如果移动目录并在软件中选择新位置,则没有问题。但是,如果您设置了错误的目录,则会出现致命错误,并且没有第二次机会将其重定位到正确的目录。所以要修复。您必须将项目文件复制到错误的目录中,并通过Github Desktop对其进行检查,之后,您可以再次将项目移至另一个文件夹中,并在软件中进行重新定位。无需为此关闭Github Desktop,它将实时检查文件夹。
希望这对某人有帮助。
答案 7 :(得分:0)
这对我不起作用。我将一个仓库从(例如)c:\ project1 \移动到c:\ repo \ project1 \,而Windows的Git没有显示任何变化。
git status显示错误,因为其中一个子模块&#34;不是git存储库&#34;并显示旧路径。例如(名称已更改为保护IP)
致命:不是git存储库:C:/project1/.git/modules/subproject/subproject2 致命的:&#39; git status --porcelain&#39;子模块子项目失败
我必须手动编辑子模块中的.git文件,以指向子模块的repo的正确相对路径(在主仓库的.git / modules目录中)
答案 8 :(得分:0)
未来报道:2018年4月。
我想在我的Mac和Windows上规范化我的本地存储库,这些存储库最终位于不同的本地文件夹中。
Windows 10客户端让我完成了“无法找到&#34; &GT; &#34;找到&#34;常规,乏味但不可怕。还需要更新本地&#34;克隆路径&#34;在选项中以供将来使用。
当我整合mac文件夹时,Github客户端再次发现它们 - 我不得不做任何事情!
答案 9 :(得分:0)
要在每次克隆其中一个时设置存储库的默认本地路径,您只需克隆一次存储库并设置Localpath:/ your-path,然后github会自动将该路径检测为默认路径。
答案 10 :(得分:0)
更基于Git的方法是使用>>>>from more_itertools import set_partitions
>>>>list(set_partitions(range(5), 3))
Out[2]:
[[[0], [1], [2, 3, 4]],
[[0], [1, 2], [3, 4]],
[[0], [2], [1, 3, 4]],
[[0], [1, 2, 3], [4]],
[[0], [2, 3], [1, 4]],
[[0], [1, 3], [2, 4]],
[[0], [3], [1, 2, 4]],
[[0, 1], [2], [3, 4]],
[[1], [0, 2], [3, 4]],
[[1], [2], [0, 3, 4]],
[[0, 1], [2, 3], [4]],
[[1], [0, 2, 3], [4]],
[[1], [2, 3], [0, 4]],
[[0, 1], [3], [2, 4]],
[[1], [0, 3], [2, 4]],
[[1], [3], [0, 2, 4]],
[[0, 1, 2], [3], [4]],
[[1, 2], [0, 3], [4]],
[[1, 2], [3], [0, 4]],
[[0, 2], [1, 3], [4]],
[[2], [0, 1, 3], [4]],
[[2], [1, 3], [0, 4]],
[[0, 2], [3], [1, 4]],
[[2], [0, 3], [1, 4]],
[[2], [3], [0, 1, 4]]]
对本地副本进行更改,或复制并粘贴,然后将这些更改从本地推送到远程存储库。
如果您尝试检查本地存储库的状态,它可能会显示“未跟踪的更改”,它们实际上是已重定位的文件。要强行推送这些更改,您需要使用
暂存这些文件/目录n=500; k=12; ele_arr = list(range(n)); np.random.shuffle(ele_arr);
output = [[] for i in range(k)]
for i, e in enumerate(ele_arr):
# have to ensure that each partition has at least one element
if i < k:
output[i].append(e)
else:
j = np.random.randint(0, k-1)
output[j].append(e)
希望有帮助。
答案 11 :(得分:0)
-首先检查当前文件夹中包含 git repo 的所有目录 $ ls -la 或 ls -al
-识别此文件夹
**.git**
-使用此命令将文件夹移动到您需要的位置,
$ mv .git 你想要的目录
注意:>目录既不会影响git历史也不会影响远程连接 >考虑要移动到的目录的树(路径)
答案 12 :(得分:0)
如果您使用 Visual Studio,请使用“团队资源管理器”>“连接”选项卡 >“本地 Git 存储库”中的“添加”将现有本地存储库引入可用存储库。没有大惊小怪,没有麻烦。