本篇博客来教你用Python写一个简单的git自动上传脚本

前言

为什么需要一个这样的东西?

有的时候,我的学习代码其实没啥好commit的,写一个自动上传的脚本,就可以自动执行完所有的命令,而不需要自己手动进行git三板斧操作

项目代码已开源 https://gitee.com/musnow/learn_python_code/tree/master/code/22-09-02%20auto_git

效果如下

把EXE文件丢进你的git仓库路径,点一下就会自动执行命令

image-20220902194427843

image-20220902195743190

打开你的仓库可以看到,成功上传了

image-20220902195944119

源码实现

其实很简单,就是用OS往系统的命令行里面写命令而已

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import os
import time

def GetTime(): #获取当前时间
return time.strftime("%y-%m-%d %H:%M:%S", time.localtime())

#修改默认的提交信息
commit_msg=f" \"Code updated: {GetTime()}\" "

#git提交命令
cmd_1 = "git status"
cmd_2 = "git add --all"
cmd_3 = "git commit -m"+commit_msg
cmd_4 = "git push"

print("[开始] 执行git自动上传")

print('[CMD]',cmd_1)
os.system(cmd_1)#显示当前动态
print('[CMD]',cmd_2)
os.system(cmd_2)#添加所有文件更改到工作区
print('[CMD]',cmd_3)
os.system(cmd_3)#自动commit
print('[CMD]',cmd_4)
os.system(cmd_4)#push上传

print("[结束] 完成git自动上传")
print("窗口将在5s后关闭...")
time.sleep(5)#休眠5秒可以看清楚结果

这里的commit信息非常粗暴,就是当前的时间。所以如果你是在写项目,那肯定还是好好写commit信息的好。不然到时候想回退版本都不知道往哪儿回退😂

利用pyinstaller打包成exe

在windows命令行中,安装pyinstaller

1
pip install pyinstaller

安装完成之后,在命令行中输入pyinstaller,大概率会报错。如果能直接用这个命令那就更好,就不需要做后续的麻烦事了。

1
2
3
4
5
6
7
8
PS D:\MyCode\Python\code\22-09-02 auto_git> pyinstaller
pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再
试一次。
所在位置 行:1 字符: 1
+ pyinstaller
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (pyinstaller:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

这时候如果你去搜教程,什么添加环境变量啊巴拉巴拉的,很麻烦,而且还不一定有用

在我的win11上,添加环境变量就是无效的。

这时候我们只需要找到python的安装路径,和里面存放pip包的路径

在我的电脑上,存放路径如下。如果你找不到,可以直接全盘搜索pyinstaller.exe

1
C:\Users\用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts\pyinstaller.exe

然后我们就可以直接执行下面的命令了

1
C:\Users\用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts\pyinstaller.exe -F 文件名.py

随后pyinstaller就会开始打包,并在当前路径下生成一个build和dist文件夹。其中dist文件夹里面就存放了我们的exe文件

image-20220902195006507

利用ResourceHacker修改exe文件的icon

实际上,pyinstaller是可以直接修改exe文件的icon的,命令如下

1
C:\Users\用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts\pyinstaller.exe -F -w -i 图标.ico 文件名.py

在我的电脑上,图标的确修改成功了,但是运行的时候,会多次弹出很多个命令行,非常不雅观!

所以我就不用pyinstaller来生成图标,而是采用第三方软件ResourceHacker(安装包自行百度)

image-20220902195233974

点击图标组里面的图标

image-20220902195248301

右键这个0:0,选择“替换图标”,找到你想要的图标进行替换即可

图标只支持.ico文件,你可以用下面这个网站进行jpg转ico

http://www.ico51.cn/

修改好后,需要点绿色的保存按钮。然后就修改成功了

image-20220902195546331

image-20220902195609076

如果你发现没有修改成功,可能是因为windows缓存的问题,重启电脑即可!

然后你就可以把这个exe丢到任何你想访到的git仓库路径下,自动上传文件啦!