[英]Create a git repo using an alias from terminal
嘿,我想創建一個像這樣的git存儲庫:
curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'
但是我想在終端(Ubuntu)中使用別名來做,比如
alias newRepo = curl -u 'USER' https://api.github.com/user/repos -d '{"name":"$1"}';
git remote add origin git@github.com:USER/$1.git;
所以在終端后我輸入:
newRepo test
它創建了回購並添加了遠程“原點”。
你可以這樣做:
首先創建一個腳本newRepo :
#!/bin/bash
user="$1"
reponame="$2"
if [ "$user" = "" ]; then
read -p "Enter Github username: " user
fi
if [ "$reponame" = "" ]; then
read -p "Enter Github Repository Name: " reponame
fi
curl -u "$user" https://api.github.com/user/repos -d "{\"name\":\"$reponame\"}"
然后制作別名:
alias newRepo=/pathtothenewReposcript
現在你可以使用:
newRepo username reponame
在github中創建一個新的存儲庫。
你可以在“ 用於顯示GitHub提交URL的Git別名 ”中找到涉及shell函數的git別名的好例子。
訣竅是在鍵入git config alias命令時找到單引號/雙引號/轉義的正確組合。
在你的情況下,考慮到你有'!',你不能用雙引號括起你的git config別名參數如果你在bash中( 雙引號內沒有'!' )
這會留下$
single quote( $'...'
),它接受' !
',並且轉義單引號(再次使用bash;這在zsh中會更容易):
舉個例子:
vonc@bigvonc MINGW64 /c/Users/vonc
$ git config --global --replace-all alias.newrepo2 '!f() { echo \'e\'; }; f'
bash: syntax error near unexpected token `}'
vonc@bigvonc MINGW64 /c/Users/vonc
$ git config --global --replace-all alias.newrepo2 $'!f() { echo \'e\'; }; f'
最后的命令是:
vonc@bigvonc MINGW64 /c/Users/vonc
$ git config --global --replace-all alias.newrepo $'!f() { curl -u \'USER\' https://api.github.com/user/repos -d \'{"name":"$1"}\'; git remote add origin git@github.com:USER/$1.git; }; f'
話雖這么說,如果你輸入curl -u 'USER' https://api.github.com/user/repos -d '{"name":"xxx"}'
,它會詢問你輸入' USER
'的密碼”。
這意味着:
USER
'應該是$(whoami)
git config
多命令別名似乎不支持等待在stdin中輸入參數... 您不能將參數傳遞給別名。 創建一個bash函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.