1.前要
这里只是讲解如何在Windows
上创建自动化脚本/程序来达到自动pull
、commit
、push
,减少冗余的仓库更新工作,避免在多平台下合作造成版本冲突等。
2.原理
使用Windows
下默认的cmd/bat
脚本编写代码。
只需要在网络上查询一些相关的语法(该脚本用起来和普通的编程语言差不多),然后根据一些命令行指令知识以及git
指令知识,即可快速编写脚本。
3.编码
首先在您包含多个存储仓库的文件下创建一个Windows
的.txt
后缀的文本文件,输入下面代码:
@echo on
set repos=("仓库路径1" "仓库路径2" "仓库路径3")
for %%r in %repos% do (
cd %%~r
git pull
git add --all
git commit -m "脚本自动更新所有仓库"
git push
cd ..
)
pause
其中,您可以修改上述代码中“仓库路径n
”为您的多个仓库路径(路径要包含存储库文件自己),接下来代码进入for
循环体,会对列表里的每一个路径/存储仓库进相同的操作:
cd %%~r
:打开存储库的路径git pull
:拉取远端仓库的文件,更新本地仓库(防止后续提交发生冲突)git add --all
:将所有本地仓库新增到暂存区git commit -m "脚本自动更新所有仓库"
:将所有暂存区文件添加到本地存储库中进行版本管理git push
:推送到远端仓库cd ..
:回到上一级目录继续循环
代码走到最后一行,使用pause
指令让您来得及查看操作的回显信息,而不让终端自动关闭,但按任意键可以让终端关闭。
编写和修改完代码后,以ANSI
编码方式保存该文本文件,避免出现中文乱码(如果还是有乱码,请仔细检查您电脑的中文字符集和文本文件的字符集)。
最后,找到这个文本文件,将该文本文件的后缀名从.txt
改为.cmd
或.bat
。
注意:请根据您的需求来编写脚本,因为不同人需求不同,我编写脚本仅仅是为了同步更新所有仓库,如果您需要定制化您的
commit
,请自行去了解.cmd
或.bat
下脚本变量的创建,这可能还需要一些关于git
的知识。
4.运行
运行代码爷很简单,只需要像运行软件快捷方式一样,双击.cmd
或.bat
即可。您也可以选择在cmd
终端中,使用命令./xxx.cmd
或./xxx.bat
来运行该脚本。
5.问题
5.1.问题一:找不到目录
路径填错了,或者干脆没有这个存储库。
5.2.问题二:有乱码问题
请检查系统的字符编码规则和存储代码的文本文件的字符编码规则。