簡體   English   中英

使用終端的別名創建一個git repo

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM