Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
Macos 使用shell命令进行Git配置_Macos_Git_Bash - Fatal编程技术网

Macos 使用shell命令进行Git配置

Macos 使用shell命令进行Git配置,macos,git,bash,Macos,Git,Bash,我有一个别名,它执行简短的状态,用sed解析它,然后将文件添加到git的“假定未更改”索引中 然而,就我对OSXbash中转义单引号的理解而言,问题似乎很简单 irm = !sh -c 'git ignore $(git st --short -u | sed '\''/^ D/s/^ D//g'\'')' 这是gitconfig中的完整行。我可以在shell中发出命令(使用sh和引号),但是当我试图通过git-irm运行它时,我得到了错误的git-config 根据下面的建议,我对其进行

我有一个别名,它执行简短的状态,用sed解析它,然后将文件添加到git的“假定未更改”索引中

然而,就我对OSXbash中转义单引号的理解而言,问题似乎很简单

irm = !sh -c 'git ignore $(git st --short -u | sed '\''/^ D/s/^ D//g'\'')'  
这是gitconfig中的完整行。我可以在shell中发出命令(使用sh和引号),但是当我试图通过
git-irm运行它时,我得到了错误的git-config

根据下面的建议,我对其进行了稍微不同的配置。但是,它在gitconfig中仍然不起作用。所以我把它添加到我的
~/.profile

alias irm="git ignore $(git st --short | grep '^ D' | sed 's/^ D //')"

您应该能够使用双引号,但必须对其进行转义:

irm = !sh -c 'git ignore $(git st --short -u | sed \"s/^ D//\")'
您不需要选择行,因为操作与选择相同。如果您只想输出匹配和排除任何其他行的行,您可能需要将
-n
p
sed
一起使用,正如Chris在评论中所建议的那样


此外,由于模式被锚定,您不需要全局选项。

您应该能够使用双引号,但您必须转义它们:

irm = !sh -c 'git ignore $(git st --short -u | sed \"s/^ D//\")'
您不需要选择行,因为操作与选择相同。如果您只想输出匹配和排除任何其他行的行,您可能需要将
-n
p
sed
一起使用,正如Chris在评论中所建议的那样


另外,由于模式被锚定,您不需要全局选项。

sed行给我带来了一些麻烦。我想你是在找这个:sed-n-e“s/^D//gp”我想确保它只命中已删除的文件。M A应该被排除在外。那条sed线路给我带来了一点麻烦。我想你是在找这个:sed-n-e“s/^D//gp”我想确保它只命中已删除的文件。M A应该被排除在外。你在gnu上吗?我在os x bash:sh-c'git st--short-u|sed“s/^D/\”sed:1:“s/^”:无效的命令代码“@Drew:是的,我在GNU上。请不要转义双引号。另一种尝试是将整个别名用双引号括起来:
irm=“!sh-c'git ignore$(git st--short-u | sed\'s/^D/\”””
。您还可以尝试省略
sh-c
git ignore$(git st--short-u | sed\'s/^D/\')
。这些都对我有用。你在gnu上吗?我在os x bash:sh-c'git st--short-u|sed“s/^D/\”sed:1:“s/^”:无效的命令代码“@Drew:是的,我在GNU上。请不要转义双引号。另一种尝试是将整个别名用双引号括起来:
irm=“!sh-c'git ignore$(git st--short-u | sed\'s/^D/\”””
。您还可以尝试省略
sh-c
git ignore$(git st--short-u | sed\'s/^D/\')
。每一个都适合我。