[英]Create a git repo using an alias from terminal
Hey there I want to create a git repository like this: 嘿,我想创建一个像这样的git存储库:
curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'
But I want to do it using a alias in terminal (Ubuntu), like 但是我想在终端(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;
So after in the terminal I type: 所以在终端后我输入:
newRepo test
And it creates the repo and add the remote "origin". 它创建了回购并添加了远程“原点”。
You can do that like this: 你可以这样做:
First create a script newRepo : 首先创建一个脚本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\"}"
Then make alias: 然后制作别名:
alias newRepo=/pathtothenewReposcript
Now you can use: 现在你可以使用:
newRepo username reponame
to create a new repository in github. 在github中创建一个新的存储库。
You can find good examples of git alias involving a shell function in " Git alias for displaying the GitHub commit url ". 你可以在“ 用于显示GitHub提交URL的Git别名 ”中找到涉及shell函数的git别名的好例子。
The trick is to find the right combination of single quotes/doubles quotes/escape, when typing the git config alias command. 诀窍是在键入git config alias命令时找到单引号/双引号/转义的正确组合。
In your case, considering you have a '!', you cannot surround your git config alias parameter with double-quotes if you are in bash ( no '!' within double quotes ) 在你的情况下,考虑到你有'!',你不能用双引号括起你的git config别名参数如果你在bash中( 双引号内没有'!' )
That leaves you with $
single quote ( $'...'
), which accepts ' !
这会留下$
single quote( $'...'
),它接受' !
', and escaped single-quotes (again in bash; that would be easier in zsh): ',并且转义单引号(再次使用bash;这在zsh中会更容易):
As an example: 举个例子:
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'
The final command would be: 最后的命令是:
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'
That being said, if you typed curl -u 'USER' https://api.github.com/user/repos -d '{"name":"xxx"}'
, it would ask you for the password for ' USER
'. 话虽这么说,如果你输入curl -u 'USER' https://api.github.com/user/repos -d '{"name":"xxx"}'
,它会询问你输入' USER
'的密码”。
That means: 这意味着:
USER
' shoud be $(whoami)
也许' USER
'应该是$(whoami)
git config
multiple-command alias doesn't seem to support well waiting for an argument to be entered in stdin... 和...一个git config
多命令别名似乎不支持等待在stdin中输入参数... You can't pass parameters to aliases. 您不能将参数传递给别名。 Create a bash function. 创建一个bash函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.