在windows中,如何在保存历史记录的同时将文件夹从一个git存储库移动到另一个git存储库?

在windows中,如何在保存历史记录的同时将文件夹从一个git存储库移动到另一个git存储库?,git,Git,我是git的新手,考虑到这个简单任务的复杂性,我对git如此受人尊敬感到惊讶 我在谷歌上搜索了一下,得到了一些结果,最终显示运行这个命令: git过滤器分支--子目录过滤您的\u目录--all 然而,它会导致: C:\tmp\w2 [master]> git filter-branch --subdirectory-filter IndigoServices -- --all Usage: git core\git-filter-branch [--env-filter <comma

我是git的新手,考虑到这个简单任务的复杂性,我对git如此受人尊敬感到惊讶

我在谷歌上搜索了一下,得到了一些结果,最终显示运行这个命令:

git过滤器分支--子目录过滤您的\u目录--all

然而,它会导致:

C:\tmp\w2 [master]> git filter-branch --subdirectory-filter IndigoServices -- --all
Usage: git core\git-filter-branch [--env-filter <command>] [--tree-filter <command>]
        [--index-filter <command>] [--parent-filter <command>]
        [--msg-filter <command>] [--commit-filter <command>]
        [--tag-name-filter <command>] [--subdirectory-filter <directory>]
        [--original <namespace>] [-d <directory>] [-f | --force]
        [<rev-list options>...]
C:\tmp\w2 [master]> git filter-branch --subdirectory-filter IndigoServices -- -- all
fatal: ambiguous argument 'all': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
C:\tmp\w2[master]>git筛选器分支--子目录筛选器IngoService--all
用法:git core\git过滤器分支[--env过滤器][--tree过滤器]
[--索引过滤器][--父过滤器]
[--msg过滤器][--commit过滤器]
[--标记名过滤器][--子目录过滤器]
[--原件][d][f |--原力]
[...]
C:\tmp\w2[master]>git筛选器分支--子目录筛选器IngoService--all
致命:参数“all”不明确:未知修订或路径不在工作树中。
使用“---”将路径与修订分开,如下所示:
'吉特[…]-[…]'

有没有一种简单的方法可以实现我想要实现的目标?

“我对git还不熟悉,考虑到这个简单任务的复杂性,我对它如此受人尊敬感到惊讶。”我们都曾经这样做过。我们中的一些人仍然和你在一起。@SLC首先,请澄清你想做什么,标题没有提供足够的信息。你想做的“简单任务”是什么?听起来你可能在考虑SVN和它处理子目录的方式,但是如果没有更多的信息,我不能确定。第二,让我弄清楚:GIT太棒了!完全击败了任何传统的集中式SCM,如SVN、TFS等。等你发现了再基础的强大功能之后!查看我的个人资料,获取成为GIT神所需的所有资源@我不知道如何进一步澄清。我在git上有一个存储库。我刚刚制作了另一个存储库。我想将文件夹从旧存储库移动到新存储库,但保留所有提交历史记录。也许你能让我相信git有多棒,帮我找到这个看似简单的任务的答案,而我却向老板解释说,到目前为止我已经浪费了一个小时@我还不完全清楚你想做什么。您是如何创建这个新存储库的?你是从旧的克隆出来的吗?然后它已经有了所有的历史记录,包括您试图移动的文件夹的历史记录。如果没有,您可以将旧的回购协议添加为远程协议,并以这种方式获取其所有历史记录。这是你可以用不同的方式做的事情吗,比如SVN或TFS之类的?让我问这个。在SVN中,子目录可以表示分支,但Git不是这样表示分支的。这就是你所想的,子目录是分支吗?@Cupcake
git subtree
是一种插件。它是现在的一部分,你链接的回购协议已经过时。它是许多发行版的标准git包的一部分。它也是作业的正确工具,因为
filter branch
将删除除文件夹之外的所有内容,而这不是OP想要的,因此他必须在以后撤消该文件夹。