【发布时间】:2012-02-05 22:48:17
【问题描述】:
这是我想使用git filter-branch 运行的脚本:
#!/bin/bash
if test -e src/unlagged.cpp; then
more +34 src/unlagged.cpp | cat ~/newlic.cpp.txt - > /tmp/unlagged.cpp
cp /tmp/unlagged.cpp src/unlagged.cpp
fi
if test -e src/unlagged.h; then
more +34 src/unlagged.h | cat ~/newlic.h.txt - > /tmp/unlagged.h
cp /tmp/unlagged.h src/unlagged.h
fi
很简单。它将所有内容通过src/unlagged.cpp 和src/unlagged.h 的前 34 行,将其与文本文件的内容连接起来,然后将其写入一个临时文件,然后将其复制到我希望修改的文件的顶部。只要我只是在我的源代码树中运行它就可以很好地工作,因为src/unlagged.cpp 的输出看起来像:
(newlic.cpp.txt)
(everything passed line 34 of src/unlagged.cpp)
但是,当我运行git filter-branch '/path/to/script.sh' -- --all 时,文件被这样修改了......
(newlic.cpp.txt)
::::::::::::::
src/unlagged.cpp
::::::::::::::
(entire src/unlagged.cpp)
这些冒号和文件名是从哪里来的?为什么它实际上没有修剪src/unlagged.cpp?我用#!/bin/sh 尝试了脚本并得到了相同的结果。顺便说一句,我正在使用 git 1.7.7.3。
【问题讨论】:
标签: git bash shell git-filter-branch