写个git提交脚本,再也不用命令行了

简介: 平时项目中我们绝大部分都是用bash命令行,或者用GUI可视化工具,无论是小乌龟还是gui工具,如果是工具比较推荐sourceTree,但是我更推荐git-fork[1],工具因人而已,无论习惯命令行还是工具,寻得自己喜欢的方式就行,没有好坏之分,也没有高低之分。

平时项目中我们绝大部分都是用bash命令行,或者用GUI可视化工具,无论是小乌龟还是gui工具,如果是工具比较推荐sourceTree,但是我更推荐git-fork[1],工具因人而已,无论习惯命令行还是工具,寻得自己喜欢的方式就行,没有好坏之分,也没有高低之分。


如果你常常用gui,或者你常常用命令行,那么不妨用用脚本来解放你的双手。


正文开始...


前置


正常情况下,我们知道我们bash中,我们使用git pullgit add .git commitgit push等这些命令实际是在git bash环境下执行的命令。相当于DOS环境或者shell执行git命令。


git bash也是可以执行.shxshell脚本


bash中的xshell命令


我们在bash新建一个index.sh文件测试一下

touch index.sh

index.sh中输入一段打印脚本

echo 'hello bash'

在命令行中输入bash index.sh

45cdf77f2f16b9f258204eaec40e5012.png

  • 删除文件


我们在index.sh中新增一个命令

echo 'hello bash'
# 删除test.txt
rm test.txt
# 删除test目录
rm -rf test
  • 打开文件修改

# 打开xx文件修改
vim test2.txt

在终端中你需要用i插入,修改后执行:wq!就可以保存退出了

fdc5cc5415f4ac088b8bb7070845d5f0.png

  • 查看目录所有文件

ls -a

728f7e18a6c766bced4eaeea1de31c65.png

  • 复制

# 将当前的test2.txt复制成test2_blank.txt
cp test2.txt test2_blank.txt


以上是一些常用的xshell命令,更多命令可以参考xshell[2]


git 提交本地代码


以上基础的了解一些常用的xshell命令,现在我们可以编写一个xshell脚本了


首先我们在我们项目根目录新建一个deplop.sh文件

touch deplop.sh

对应的deplop.sh

# 如果项目已经初始化后,已经init 那么不用加这个
# git init
# 更新your对应分支
git pull origin your_branch
# 查看本地状态
git status
# 添加本地修改的文件
git add .
# 提交
git commit -m 'add xx'
# 添加远程remote 如果项目已经remote,可以省略
# git remote add origin https://github.com/xx.git
# 推送到指定分支
git push origin your_branch

然后我们在根目录下创建一个package.json

npm init -y

然后在package.json中,添加命令

{
    "name": "lessonNote",
    "version": "1.0.0",
    "description": "lessonNote-js 学习笔记",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "push": "bash deplop.sh"
    },
    ...
}

然后我们运行命令npm run push

e19cacf7916785bebd476ac5e390ace3.png

至此你就可以愉快的用一行命令了,但是正常情况下你每次得修改commit的信息,而不是写死在deplop.sh脚本里面


于是你可以这样

# 如果项目已经初始化后,已经init 那么不用
# git init
# 更新your_branch
git pull origin your_branch
# 查看本地状态
git status
# 添加本地修改的文件
git add .
# 读取终端输入的信息
read -p "input your commit message: " msg
# 提交
git commit -m "$msg"
# 添加远程remote 如果项目已经remote,可以省略
# git remote add origin https://github.com/xx.git
# 推送到指定分支
git push origin your_branch

当你运行npm run push后,就会执行上面你编辑的脚本,就可以快速的提交到自己仓库了

44a069168d297e37474dc146f6c969ff.png

如果你是想推一个你打包后的项目到指定仓库,可以参考deplop.sh[3]

# deploy.sh
#!/usr/bin/env sh
# 确保脚本抛出遇到的错误
set -e
# 生成静态文件
npm run build
# 进入生成的文件夹目录
cd docs/.vuepress/dist
git init
# 添加当前文件
git add .
# 读取终端输入的信息
read -p "input commit message: " msg
git commit -m "$msg"
# remote 指定仓库
git remote add origin https://github.com/xxx.git
# 推送到指定仓库
git push -f origin your_branch
echo 'push success'

然后执行npm run push这样就可以一行命令替代你提交的所有操作了


总结


  • 了解一些常用的xshell脚本命令,在xx.sh这样的文件,你可以编写一些脚本,对文件进行删除,修改等操作
  • 新建一个deplop.sh文件,编写git提交本地文件,解放git add git commitgit push操作
  • 本文示例code example[4]
相关文章
|
6月前
|
存储 前端开发 开发工具
Git提交前的必备神器——自动清除调试语句脚本
Git提交前的必备神器——自动清除调试语句脚本
51 0
|
6月前
|
前端开发 算法 开发工具
Git分支批量清理利器:自定义命令行插件实战
Git分支批量清理利器:自定义命令行插件实战
121 0
|
移动开发 小程序 Linux
【Linux】Linux和Window下\r与\n的区别、git命令行的使用
目录 1. 回车换行符在Window下和在Linux下的区别: 1.1回车换行符: 1. 2.行缓冲区打印: 1.3进度条小程序 :
241 0
|
3月前
|
开发工具 git Python
通过Python脚本git pull 自动重试拉取代码
通过Python脚本git pull 自动重试拉取代码
179 5
|
2天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
13 2
|
3月前
|
开发工具 git
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式
这篇文章分享了作者在使用Git工具初始化本地仓库时遇到的权限问题,提供了通过命令行解决Git仓库权限问题的方案,并介绍了如何使用Git命令行初始化项目、添加文件、提交以及关联远程仓库的步骤。
成功解决:fatal: detected dubious ownership in repository at ‘E:/workspace/CSMarket‘。如何使用git工具通过命令行的形式
|
5月前
|
开发工具 git
MAC如何使用Git命令行上传本地项目及理解,failed to push some refs to ‘https://gitee.com/brother-barking/spxx.git
MAC如何使用Git命令行上传本地项目及理解,failed to push some refs to ‘https://gitee.com/brother-barking/spxx.git
|
5月前
|
缓存 开发工具 数据安全/隐私保护
mac git命令行操作 git push pull 逻辑
mac git命令行操作 git push pull 逻辑
81 1
|
Shell 开发工具 git
教你写一个快速提交git代码的shell脚本(二)
教你写一个快速提交git代码的shell脚本(二)
|
6月前
|
开发工具 git
自动化脚本之Git相关
自动化脚本之Git相关
41 0