创建一个 git 别名以显示标记为 --assume-unchanged 的文件?
Create a git alias to show files marked as --assume-unchanged?
我正在尝试按照 this answer 中的说明为冗长的 git 命令创建别名:
Edit your .gitconfig file to add this snippet:
[alias]
ignored = !git ls-files -v | grep "^[[:lower:]]"
我有两个问题:
- 我在哪里可以找到 Mac OS X 上的
.gitconfig
?
- 如何从命令行执行此操作?
按照简单的说明 here,我试过了...
git config --global alias.ignored "ls-files -v | grep '^[[:lower:]]'"
和
git config --global alias.ignored "!git ls-files -v | grep '^[[:lower:]]'"
第一个命令成功,但 git ignored
没有输出。第二个告诉我我做错了。
编辑:这是我 运行 第二个命令时发生的情况:
$ git config --global alias.ignored "!git ls-files -v | grep '^[[:lower:]]'"
git config --global alias.ignored "git push -u origin --all ls-files -v | grep '^[[:lower:]]'"
$ git ignored
Expansion of alias 'ignored' failed; 'git' is not a git command
执行此命令后,.gitconfig 文件包含...
[alias]
ignored = git push -u origin --all ls-files -v | grep '^[[:lower:]]'
...这看起来不像我以为我正在设置的命令。
正如@maggick 在评论中所说,.gitconfig
进入您的主目录。
您的第二个命令失败,因为您的 shell 将 "!git"
解释为历史搜索。例如:
$ echo 'hi'
hi
$ cat < /dev/null
$ !echo
echo 'hi'
hi
你在没有 !git
的情况下的尝试避免了这个问题,但是你不能通过管道传输到更多的命令,除非你告诉 Git 别名是一个完整的 shell 命令(相对于直接到Git command) 伴随一声巨响。
shell 插入双引号,但不是单引号,因此在别名命令中反转引号,或转义内部单引号:
$ git config --global alias.test '!git ls-files -v | grep "foo"'
我正在尝试按照 this answer 中的说明为冗长的 git 命令创建别名:
Edit your .gitconfig file to add this snippet:
[alias] ignored = !git ls-files -v | grep "^[[:lower:]]"
我有两个问题:
- 我在哪里可以找到 Mac OS X 上的
.gitconfig
? - 如何从命令行执行此操作?
按照简单的说明 here,我试过了...
git config --global alias.ignored "ls-files -v | grep '^[[:lower:]]'"
和
git config --global alias.ignored "!git ls-files -v | grep '^[[:lower:]]'"
第一个命令成功,但 git ignored
没有输出。第二个告诉我我做错了。
编辑:这是我 运行 第二个命令时发生的情况:
$ git config --global alias.ignored "!git ls-files -v | grep '^[[:lower:]]'"
git config --global alias.ignored "git push -u origin --all ls-files -v | grep '^[[:lower:]]'"
$ git ignored
Expansion of alias 'ignored' failed; 'git' is not a git command
执行此命令后,.gitconfig 文件包含...
[alias]
ignored = git push -u origin --all ls-files -v | grep '^[[:lower:]]'
...这看起来不像我以为我正在设置的命令。
正如@maggick 在评论中所说,.gitconfig
进入您的主目录。
您的第二个命令失败,因为您的 shell 将 "!git"
解释为历史搜索。例如:
$ echo 'hi'
hi
$ cat < /dev/null
$ !echo
echo 'hi'
hi
你在没有 !git
的情况下的尝试避免了这个问题,但是你不能通过管道传输到更多的命令,除非你告诉 Git 别名是一个完整的 shell 命令(相对于直接到Git command) 伴随一声巨响。
shell 插入双引号,但不是单引号,因此在别名命令中反转引号,或转义内部单引号:
$ git config --global alias.test '!git ls-files -v | grep "foo"'