GitHub 仓库创建与提交的自动化脚本

 

按照自己的使用习惯,这篇文章对于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" #与第二行代码等价