我正在试图弄清楚如何使用git filter-branch,我需要一些基本的Linux脚本命令的帮助。
'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
有人可以为我解读这个并解释每个部分吗?
我最感兴趣的是'|'符号,&&符号和sed命令。
答案 0 :(得分:1)
“|”是unix管道命令,它将左侧输出的命令连接到右侧输入的命令。
“&安培;&安培;”是unix“和”命令,当且仅当左侧的命令成功完成时,它将在其右侧执行命令
“sed”是unix“流编辑器”一个强大的编辑工具,可以解析和编辑它的输入
答案 1 :(得分:1)
|
将前面命令的stdout连接到以下命令的stdin。
&&
执行以下命令。
sed中的s
命令是替换。它为第一个参数搜索正则表达式匹配,并将其替换为第二个参数。参数分隔符传统上是/
,但在这种情况下它将使用后面的第一个字符-
。替换中的&
将替换为整个匹配。