什么是使用git filter-branch目录选项的正确方法?

时间:2019-01-15 01:03:48

标签: git

我正在尝试将git filter-branch与-d选项一起使用,但不确定使用什么值。我尝试了git filter-branch -d /tmpmktemp -d的输出,但是都导致错误“ ...已经存在,请删除它”。

什么是正确的使用方式?

2 个答案:

答案 0 :(得分:0)

https://git-scm.com/docs/git-filter-branch#git-filter-branch--f

  

git filter-branch拒绝从现有的临时目录开始

因此,要么将不存在的目录传递到-d,要么将-d-f/--force一起使用。

答案 1 :(得分:0)

仅使用不存在的目录的名称。 Git会创建它。创建过程将确保新创建的临时目录为空,这意味着git filter-branch将能够正确运行。

请注意,当filter-branch使用目录时,它还会在目录中创建几个子目录。如果您使用的是--tree-filter,则临时树目录是您提供的-d参数的子目录。

(可以将-d-f一起使用,就像phd's answer一样,但是即使您已经有一个非空的refs/original/名称,它也可以运行-空格,这不一定是个好主意。您会知道这是否是个好主意,但如果您知道这一点,那么您还将了解-d选项,而不是问这个问题。:-))