众所周知,在github上新建项目无非是以下两种情况
- 代码从零开始。
- 本地已经存在项目代码,只是想放到
github
上开源或者存放。
然而,无论是哪种情况,都得先在github
新建一个项目的仓库。登录github
后,找到下图中的Repositories
这个tab,然后点击红框中的new
来新建一个项目仓库。
新建项目仓库的界面如下所示:
然后由上往下输入你项目的名字、项目的描述,选择这个项目是不是公开(Public)或是作为私人项目(Private)。
如果自己本地有很多项目需要导入到github上,再或者网络不太稳定,每次都打开github页面来创建岂不是很麻烦?
现在我就来教你如何通过命令行创建github项目
准备工作
1. 新建一个API token
打开github的个人设置页面,在Developer settings
分组中找到Personal access tokens
菜单,或点击 https://github.com/settings/tokens 直接进入。
然后选择Generate new Token
按钮来创建一个token,写入description,选择scopes(设置此token持有者的权限)。
记住personal access token(也就是那一串字符和数字)!这一串东西只出现一次,下次查看不到。
1 2 3 4 5 |
mkdir test cd test git init git add . git commit -m 'test information' |
通过控制台命令创建仓库
1. 命令行模式
这是最直接的一种形式,直接把参数写到命令行搞定:
1 |
curl -u "$username:$token" https://api.github.com/user/repos -d '{"name":"'$repo_name'"}' |
注:这里需要把$username和$token分别换成实际的用户名和刚才记住的personal access token,把$repo_name换成任何想要的repo name。
如果想在github上自己创建的组织下新建,则需要把地址修改为https://api.github.com/orgs/$organization/repos
注:这里需要把$organization换成实际的组织名。
2. bash脚本形式
我们可以把命令行写成bash脚本,下次只要执行里面的简单命令就可以执行以上整条命令。
- 把username和token写入(apend或者修改)~/.gitconfig,形式如下:
123[github]user = your user nametoken = the token you get - 把如下bash code写入(append)~/.bash_profile文件
123456789101112131415161718192021222324252627282930313233343536373839github-create() {repo_name=$1dir_name=`basename $(pwd)`if [ "$repo_name" = "" ]; thenecho "Repo name (hit enter to use '$dir_name')?"read repo_namefiif [ "$repo_name" = "" ]; thenrepo_name=$dir_namefiusername=`git config github.user`if [ "$username" = "" ]; thenecho "Could not find username, run 'git config --global github.user <username>'"invalid_credentials=1fitoken=`git config github.token`if [ "$token" = "" ]; thenecho "Could not find token, run 'git config --global github.token <token>'"invalid_credentials=1fiif [ "$invalid_credentials" == "1" ]; thenreturn 1fiecho -n "Creating Github repository '$repo_name' ..."curl -u "$username:$token" https://api.github.com/user/repos -d '{"name":"'$repo_name'"}' > /dev/null 2>&1echo " done."echo -n "Pushing local code to remote ..."git remote add origin git remote add origin https://github.com/$username/$repo_name.git > /dev/null 2>&1git push -u origin master > /dev/null 2>&1echo " done."} - 重新打开或新启动一个Termina,或者也可以在当前Terminal下运行如下命令
1Source ~/.bash_profile - 然后就可以用如下命令创建远程仓库了
1github-create [repo name]
如果你不想用默认repo名(也就是当前目录名)创建repo可以重新输入另一个名字,否则直接按回车执行。
这是一种比较健壮的形式,其username,token,repo name 都有很大的自由度,接下来这种非常简单,但在不同情况下有时需要被直接修改。
以下是我用的简化版,仅供参考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
sample-create() { if [ $1 ] then repo_name=$1 else echo "Repo name?" read repo_name fi username=`git config github.user` token=`git config github.token` curl -u "$username:$token" https://api.github.com/orgs/sample/repos -d '{"name":"'$repo_name'"}' if [ ! -d "$repo_name" ]; then mkdir $repo_name fi cd $repo_name touch README.md git init git add . git commit -m 'init' git remote add origin https://github.com/sample/$repo_name.git git push -u origin master cd .. } |