很長一段時間,我在我的別名下面的別名文件:回聲在gitconfig別名呼應的命令行參數的整個列表時,只有一個預期
ignore=!([ ! -e .gitignore ] && touch .gitignore) | echo $1 >>.gitignore
這不是原來的我了,如果你搜索它,你會看到很多地方。然而,最近我開始對別名有一個奇怪的問題。我忽略的任何東西都放在.gitignore文件中並放在同一行(僅限一個空格)。
我做了一些調試,發現真正發生的事情是,對echo $1
的調用正如您所期望的那樣呼應$1
,但也會將別名的整個參數字符串回顯。
爲了測試這一點,我做了一個新的別名:
eo = !echo $1
> git eo test
test test
> git eo test0 test1
test0 test0 test1
最後一行是最有趣的,因爲它清楚地表明,回聲通話越來越整套上漲到它的參數的同時$1
是正確評估。事實上,如果我惹的事,改變$1
到$9
(不填$9
),我得到:
> git eo test0 test1
test0 test1
我已經證實,這種情況在Git的版本1.8.5至1.9.0和我已經證實它不會發生在Git 1.7.1版本中;不幸的是,我無法在1.7.1和1.8.5之間進行測試。
有沒有人有任何見解這裏發生了什麼?它打破了我的幾個別名...
'ignore =! >> gitignore echo'可能也可以工作(並且允許你一次將多個文件添加到你的忽略文件中) – knittl