按照自己的使用习惯,这篇文章对于GitHub仓库的创建与更新分别给出一个自动化脚本。
仓库的创建
- 在
~
中创建create.sh文件
vi ~/create.sh
- 将以下内容添加写入上述文件中
#!/bin/bash
###################create public repository##################
#------------用户修改部分------------------
USER_NAME="Meiting-Wang" #用户名
TOKEN="your token" #你的token
REPO_NAME="repo_name" #仓库名称
PRIVATE="false" #仓库隐私性
REPO_DESCRIPTION="description for this repo" #仓库的描述
#-------------无需修改部分------------------
#本地 repository 初始化
git init #默认创建master分支
git add .
if [ "$1" ]
then
git commit -m "$1"
else
git commit -m "first commit"
fi
git branch -M main #将分支名重命名为main(为了与github保持一致)
#创建 github 远端 repo
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${TOKEN}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/user/repos \
-d "{\"name\":\"${REPO_NAME}\",\"description\":\"${REPO_DESCRIPTION}\",\"private\":${PRIVATE}}"
#关联本地仓库与远端仓库,并将本地仓库推送至远端仓库
git remote add origin git@github.com:${USER_NAME}/${REPO_NAME}.git #关联远端仓库与本地仓库
git push -u origin main #-u参数表示之后的推送可直接由 git push 完成
注意:curl -d后面的双引号需要一些转换(相对于直接在git bash运行而言)
- 运行上述文件
bash ~/create.sh
bash ~/create.sh "first commit infomation"
~/create.sh #与第一行代码等价
~/create.sh "first commit infomation" #与第二行代码等价
仓库的提交
- 在
~
中创建update.sh文件
vi ~/update.sh
- 将以下内容添加写入上述文件中
#!/bin/bash
###################update repository##################
#-------------本脚本无需修改------------
time=$(date "+%Y-%m-%d %H:%M:%S")
git add .
if [ "$1" ]
then
git commit -m "$1"
else
git commit -m "update on ${time}"
fi
git push
- 运行上述文件
bash ~/update.sh
bash ~/update.sh "commit infomation"
~/update.sh #与第一行代码等价
~/update.sh "commit infomation" #与第二行代码等价