摘要:通過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