git filter-branch手册页问题

时间:2014-03-14 15:55:18

标签: git version-control

问题

man git-filter-branch 显示了一个很好的示例,说明如何重写GIT repo提交历史记录,以便更改所有提交,以便可能认为所有提交都在子目录中。基本上可以移动相应存储库中的所有文件而不会丢失历史记录。

这可用于合并两个不同的兼容存储库,这两个存储库都具有相同名称的文件/目录。

问题:可以用两种不同的方式调用此示例,为什么手册页(1.)中的1:1粘贴工作但(2.)失败?

我所做的就是重新格式化命令,这样它只需要一行。

1。调用命令(多行)

       git filter-branch --index-filter \
               'git ls-files -s | sed "s-\t\"*-&newsubdir/-" |
                       GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
                               git update-index --index-info &&
                mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD

重写3720c8434560995123b922597a45e16e57c0b0d9(278/278)

参考'refs / heads / master'被重写

2。调用命令(在一行中)

git filter-branch -f --index-filter 'git ls-files -s | sed "s-\t\"*-&toplevel/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE""' HEAD  

重写51662df070793ac10b6c8c9bbdca5f6f7c7b74bd(1/278)/nix/store/wiw6axjcyds0zk1nxfxk50zqs6mmfyg9-git-1.8.5.2/libexec/git-core/git-filter-branch:eval:line 329:在寻找匹配的“”时出现意外的EOF /nix/store/wiw6axjcyds0zk1nxfxk50zqs6mmfyg9-git-1.8.5.2/libexec/git-core/git-filter-branch:eval:line 330:语法错误:意外的文件结束 索引过滤器失败:git ls-files -s | sed“s- \ t \”* - & toplevel / - “| GIT_INDEX_FILE = $ GIT_INDEX_FILE.new git update-index --index-info&& mv”$ GIT_INDEX_FILE.new“”$ GIT_INDEX_FILE“”

0 个答案:

没有答案