用脚本初始化一个git项目

前言

第一次这样子自己写一个脚本,所以存在很多缺陷,目前已知的缺陷已经列出TODO里面了,后续会更新上
脚本存在是为了简化日常繁琐的操作,方便人们将重心放在主要的开发任务中,所以创建这个脚本的目的是为了平时写demo或者项目的时候可以快速搭建一个git项目环境而不比再去进行一系列繁琐的初始化操作

脚本内容

  1. 创建git环境,包括git init、.gitignore等,并导入了部分平时会遇到的内容,
  2. 创建readme.md,并导入相关的markdown格式的目录(TODO,目前还没有自己写过的一个完整的markdown格式的项目文档,后期写了的话会更新上的)

代码

#!/bin/sh
#FIlename: init.sh
#Function: Create a init github respositories shell
#Version: 0.0.1
#Author: kucfire
#Data: 2021-01-19

## 复制本脚本文件到对应的空白项目下并运行,会搭建一个初始的项目框架
## 需要将init.sh的权限提升到777(即执行sudo chmod -R 777 init.sh或者sudo chmod u+x init.sh)

## 判断输入参数数量,数量不达标则退出脚本
if [ $# != 2 ]; then
    echo "Please input least 2 param"
    exit 1
fi
## 判断输入的参数的格式,TODO

## 创建readme.md,并写入对应的文本框架(文本框架可自定义)
if [ ! -f readme.md ]; then
    echo "readme.md isn't exist"
    touch readme.md
    echo "created readme.md successful"
else
    echo "readme.md is exist"
    echo "clear readme.md's content"
    cat /dev/null >readme.md # 清空文件内容
fi

echo "Write format content to readme.md"
## echo "将自定义框架放入这里,最好以markdown的格式进行编写,在上传至github的时候可以呈现出对应的效果" >>readme.md
## example "hello,world!":
echo "Hello.world!" >>readme.md
## example markdown format:
## 后期有些一些关于markdown的文本时会放到这里做成示例

## 构建一个.gitignore
if [ ! -f .gitignore ]; then
    echo ".gitignore isn't exist"
    touch .gitignore
    echo "created .gitignore successful"
else
    echo ".gitignore is exist" # 这里不需要清空内容,可能原本存在的.gitignore就有屏蔽的内容
    cat /dev/null >.gitignore  # 测试用的,实际使用该脚本时需要注释掉该选项
fi
## 写入常用的禁止上传github的无用文件
echo ".history/\nlogs/\ndist/\nlogs/\nnode_modules/\npackage-lock.json\n" >>.gitignore # 产生该文件的为vscode中的一款历史记录的插件,该插件会随着保存而创建多个文件,造成大量的无需上传github的文件,影响上传速率甚至浪费资源

## 初始化项目的git环境,直接git init,不做其他判断
# if [ ! -d .git ]; then
#     echo ".git isn't exist"
#     git init
# fi
git init

## 将本地与远程仓库进行关联
## 需要先判断本地是否已经存在该远程仓库的链接
if [ ! -n $1 ]; then
    echo "please input you respossitories"
fi
# git remote -v | awk '{print $2}'
git remote add $1 $2
echo "remote add successful"

## 创建项目所需的文件分类
## example about go:
# touch -p dao/demo.go controller/demo.go dto/demo.go logs bin conf/demo.go router/demo.go
# TODO 用正则表达式筛选文件夹名称并使用echo放进对应的demo.go里面去
mkdir dao controller dto logs bin conf router
touch dao/demo.go controller/demo.go dto/demo.go conf/demo.conf router/demo.go
echo "package dao" >dao/demo.go
echo "package controller" >controller/demo.go
echo "package dto" >dto/demo.go
echo "package router" >router/demo.go
cp init.sh bin
## 如果有自己的demo,可以直接clone下demo到该empty respositories中
# git clone

## 上传当前目录的所有东西到远程代码仓库
git add .
git commit -m "init respositories"
git push $1 master

链接

Github地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值