文章目录
1.引言
在使用git的过程中,老是需要提交 需要三板斧,在gitpush后还要输入用户名和密码,博主就感觉很麻烦
咱主打一个方便 我们今天来实现一个自动化免密提交 且可以定时提交,
这样就无需,担心自己忘记提交
大家知道我们现在使用的是云服务器,在云端是一直运行的
所以这样我们就可以使用shell编程来实现自动化提交
2.生成ssh密钥
1.打开你的终端
2.运行一下命令生成ssh密钥
ssh-keygen -t rsa -b4096-C"[email protected]"
注意:在这里修改成自己的邮箱哈
然后他会问你一系列的问题,你直接回车键即可
但是我们想要实现免密登录,就不要管,就一直回车
3.查看你的密钥
cat ~/.ssh/id_rsa.pub
运行该指令后,会出现一串密钥
你以ssh -rra开头,以你的邮箱结尾的密钥
你把这段密钥复制下来
4.在gittee中增加ssh密钥
把你刚才复制的内容粘贴到这里
点击确定,密钥接添加完成了
5.需要把http协议改成ssh的(注意超级重要)
1.查看你现在的协议
git remote -v
运行这段代码后会有这样的场景
origin https://gitee.com/username/repo.git (fetch)
origin https://gitee.com/username/repo.git (push)
如果是这样的就是http协议,你需要修改协议成ssh的
git remote set-url origin [email protected]:username/repo.git
要修改成自己的username和仓库地址
这样就把http协议改成ssh了
编写shell程序
1.创建shell
vim myshell.sh
2. 普通版的shell
#!/bin/bash# 切换到您的Git仓库目录cd ~/~/~
#注意这里要用绝对路径 这个路径博主自己瞎写的,你们要进入到有.git文件下的目录# 添加所有更改到暂存区#也可以判断一下是否代码发生了改变gitadd.# 创建提交git commit -m"Automated commit on $(date)"# 推送更改到远程仓库git push origin master
加强版的shell
#!/bin/bash# 定义仓库路径REPO_DIR="/path/to/your/repo"# 进入仓库目录cd$REPO_DIR# 检查是否有未提交的更改ifgit diff-index --quiet HEAD --;thenecho"没有更改,无需提交。"else# 添加所有更改到暂存区gitadd.# 提交更改COMMIT_MESSAGE="自动提交更改 $(date)"git commit -m"$COMMIT_MESSAGE"# 推送到 Giteegit push gitee master
echo"更改已推送到 Gitee。"fi#注意在shell里的注释是# 和python一样
3.修改myshell.sh的权限
chmod + x myshell.sh
修改这个脚本的权限,在一开始的时候是没有运行这个程序的权利的
4.运行myshell.sh
博主这里之前已经提交过了,就显示最新了
给自己的shell指定运行时间
5.设置cron表
这里表示你没有设置过cron表
是需要你选择一个编辑器
比如 你要是选择nano编辑器 你就选择“1”后,按下enter键
进入这个界面
按照这个
305 * * * /home/yourusername/myshell.sh
在这里后面是这个.sh程序的位置 和上面shell里面对应的位置一样的
修改后 表示该程序的自动运行时间是早上5:30
加上后就可以保存推出了
按下Ctrl+ X 进入这个页面 按下Y 加上Enter键
就可以了
本文到这里就结束了
6.欢迎大家放我的gittee(虽然很菜)帮忙点个星呗
https://gitee.com/letkin/study.git 谢谢大家了
希望大家的gittee都是绿的
版权归原作者 我喜欢代码 所有, 如有侵权,请联系我们删除。