简介
因为有很多项目都需要使用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.mdseturl.sh
,第一次设置远程仓库使用.gitignore
,忽略提交的文件/文件夹,这是一个隐藏文件ChangeLog.md
,更新记录文件,每次提交会自动填写更新记录和时间Readme.md
,仓库描述文件
远程执行
编写完成之后,我们可以上传到服务器,需要使用的时候直接从服务器获取shell脚本运行来初始化本地项目,而不用再次手动编写,例如:
curl https://www.zdynb.cn/fast_init.sh | bash
执行效果
快速初始化项目Git的配置,省时省力