使用git filter-branch时出现问题,"模糊的参数"

时间:2014-10-08 11:17:05

标签: git

我有一个git树:

  • egit/
    • project1/
    • project2/

我正在尝试将project1拆分到另一个存储库。所以我打开命令提示符cd进入egit文件夹。然后,在this tutorial之后,我运行命令git filter-branch --prune-empty --subdirectory-filter \ project1\ master。我一直收到错误:

fatal: ambiguous argument 'project1\': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

我已经使用project1验证了git ls-tree --full-tree -r HEAD在我的git仓库中,所以我不知道出了什么问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

使用以下命令。

git filter-branch --prune-empty --subdirectory-filter project1 master

答案 1 :(得分:0)

这很奇怪,但我发现在Windows上运行git-bash。如果在分支上签出远程存储库,则此格式将给出错误:

git filter-branch --prune-empty --subdirectory-filter project1 master

但是,如果你转到远程存储库(在我的情况下是另一个文件夹)和git checkout master,那么filter-branch运行时没有错误。

此外,如果远程仓库在分支上签出,则此格式将无错运行,并为新仓库使用相同的分支:

git filter-branch --prune-empty --subdirectory-filter project1