摘要:通过git别名运行的命令的当前工作目录是错误的。git别名在错误的目录中操作
证明这一点最简单的方法是有一个git的别名,就像这样:
[alias]
pwd = !pwd
所以git pwd
只是运行bash命令pwd
。人们会认为这两个命令的输出是相同的。现在,让我们尝试了这一点几次:
$ cd ~
$ pwd && git pwd
/home/limpchimp
/home/limpchimp # great!
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /home/limpchimp/foo/.git/
$ pwd && git pwd
/home/limpchimp/foo
/home/limpchimp/foo # great!
$ mkdir bar && cd bar
$ pwd && git pwd
/home/limpchimp/foo/bar
/home/limpchimp/foo # uuhhhhhhhh...?
看来,Git是改变当前的工作目录是具有.git
文件夹中的第一个父目录(如果存在的话)。这是非常有问题的;它搞砸了我编写的某些脚本,这些脚本是为了在特定目录中运行,并且使我无法将某些事情用作git别名。有没有解决的办法?我该如何解决它?
[如git的别名给出不同的结果为什么会运行命令?(HTTP的可能的复制为退货://计算器.COM /问题/ 8832799 /为什么 - 不运行命令-AS-git的别名给-不同-结果) – 2016-04-07 12:53:41