Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 参数前没有空格的xargs(或其他内容)_Linux_Git_Xargs_Git Squash - Fatal编程技术网

Linux 参数前没有空格的xargs(或其他内容)

Linux 参数前没有空格的xargs(或其他内容),linux,git,xargs,git-squash,Linux,Git,Xargs,Git Squash,我想执行类似这样的操作(git squash): 从git日志中提取3: git log | blabla | xargs git rebase -i HEAD~ 这不起作用,因为xargs在HEAD~之后插入一个空格 问题是我想给这个命令加别名,所以我不能只使用 git rebase -i HEAD~`git log | blabla` 因为这个数字将在我定义别名时计算 我不必使用xargs,我只需要一个别名(最好不是函数)。试试这个: git log | blabla | xargs -

我想执行类似这样的操作(git squash):

从git日志中提取3:

git log | blabla | xargs git rebase -i HEAD~
这不起作用,因为xargs在
HEAD~
之后插入一个空格

问题是我想给这个命令加别名,所以我不能只使用

git rebase -i HEAD~`git log | blabla`
因为这个数字将在我定义别名时计算

我不必使用xargs,我只需要一个别名(最好不是函数)。

试试这个:

git log | blabla | xargs -i bash -c 'git rebase -i HEAD~{}'

您可以使用
xargs
-I
选项:

git log | blabla | xargs -I% git rebase -i HEAD~%

整个命令是这样的:git log | grep Author | head | awk{print$2}| sed'/[^gismo]/q'| head-n-1 | wc-l | xargs-I%git rebase-I head~%I我不知道
-I
的用法。谢谢这里解释了这个答案中“bash-c”的原因,我认为如果第一个命令需要一段时间才能执行,您需要它:
git log | blabla | xargs -I% git rebase -i HEAD~%