快速初始化git仓库


简介

因为有很多项目都需要使用Git进行版本管理,每次都要手动输入命令实在是太慢了,趁着有空,把使用到的命令编写成了shell脚本,一键初始化项目并创建后续自动提交脚本

脚本内容

首先我们可以手动创建一个sh脚本,我这里命名为fast_init.sh

在项目根目录下终端输入以下命令

touch fast_init.sh && chmod +x fast_init.sh

这时候会自动创建一个shell脚本,并赋予执行权限,这时候我们使用编辑器(vim或者vscode)打开它,并填入以下内容

#!/bin/bash
touch .gitignore
file=".gitignore"
cat >>"$file" <<EOF
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# 自定义
.sass-cache/
*.css.map
*.js.map
*sass.cache
*.sass.map
*.scss.map
Thumbs.db
db.json
node_modules/
.deploy*/%
.vuepress/dist
.yarn/
.webpack/
.pnp.*
.vscode/
.history/
*.vsix
.ionide
.history
EOF
touch Readme.md
readme="Readme.md"
cat >>"$readme" <<EOF
#### $(date '+%Y-%m-%d %H:%M:%S %A')
创建仓库
EOF

touch ChangeLog.md
ChangeLog="ChangeLog.md"
cat >>"$ChangeLog" <<EOF
### ChangeLog
#### $(date '+%Y-%m-%d %H:%M:%S %A')
创建仓库
EOF

touch update.sh && chmod +x update.sh
update="update.sh"
cat >"$update" <<EOF
#!/bin/bash
echo 请输入更新内容:
read -r m
echo 更新日志中...
System=\$(uname -s)
if [ "\$System" == "Darwin" ];then
    echo "Use MacOS"
    sed -i '' "1a\\\\
    ####  \`date '+%Y-%m-%d %H:%M:%S %A'\` \\\\
    \$m
    " ChangeLog.md
elif [ "\$System" == "Linux" ];then
    echo "Use Linux"
    sed -i "2 i #### \$(date '+%Y-%m-%d %H:%M:%S %A') \n \$m" Readme.md
else
    echo "Other OS: \$System"
fi
gitRemote=\$(git remote)
# 获取当前分支名
branchName=$(git symbolic-ref --short -q HEAD)
echo "\$branchName"
git add .
git commit -m "\$m"
# 兼容处理
for i in \$gitRemote; do
    # echo "\$i"
    # 如果i等于origin则跳过,否则推送
    if [ "\$i" == "origin" ]; then
        echo "不推送origin"
    else
        echo "推送\$i"
        git push "\$i" "\$branchName"
    fi
done
EOF

touch seturl.sh && chmod +x seturl.sh
seturl="seturl.sh"
cat >"$seturl" <<EOF
#!/bin/bash
echo 请输入远程仓库名
read -r name
echo 请输入远程仓库URL
read -r url
git remote add \$name \$url
git branch -M main
git push \$name main
EOF
git init
git add .
git commit -m "创建仓库"

注意:sed命令再Mac和Linux略有不同,若使用Linux需要修改,这里不做介绍

文件介绍

这时候会自动生成5个文件,分别为

  • update.sh,每次提交修改的时候使用,会提示填写本次修改内容和时间并自动填入ChangeLog.md

  • seturl.sh,第一次设置远程仓库使用

  • .gitignore,忽略提交的文件/文件夹,这是一个隐藏文件

  • ChangeLog.md,更新记录文件,每次提交会自动填写更新记录和时间

  • Readme.md,仓库描述文件

远程执行

编写完成之后,我们可以上传到服务器,需要使用的时候直接从服务器获取shell脚本运行来初始化本地项目,而不用再次手动编写,例如:

curl https://www.zdynb.cn/fast_init.sh | bash

执行效果

快速初始化项目Git的配置,省时省力

执行效果


文章作者: 张登友
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张登友 !
  目录