半自动保存git仓库log日志的Windows bat脚本


前言

当我们使用git进行代码版本管理时,常常使用指令

git reset <版本号>

跳转到不同的版本,而我们一般是通过指令

git log

获得历次提交的版本号。但是,当我们跳转到较早期的版本后,git log的内容也会随之改变——不会显示该版本之后的内容。常见的做法是使用

git log > <Floder>/<branchname.log>

将最新提交后的log日志保存到 git 文件夹外部的某个文件中。切记这里不能保存在仓库文件夹内部,因为在转化版本时,仓库文件夹中的几乎所有内容都会回到之前的状态,我们保存的.log文件自然也不能幸免。

但是每次保存都要输入一次保存log文件的路径未免有些繁琐,即使是相对路径有时候也会显得太长了。所以,博主这里开发了一个十分简便的半自动化工具用于实现这一过程。


Version 1.0

博主关于Windows批处理文件的了解也有限,暂时只实现了很简单的功能。将此版本命名为1.0,以后还有提升的空间.

工作流程

如图所示,我的所有Java项目都放在eclipse-workspace文件夹下。图中的savelog.bat就是脚本文件,
_log文件夹是保存项目日志的文件夹。
在这里插入图片描述

双击savelog.bat,启动脚本。

在这里插入图片描述
如上图所示,首先会打印提示当前我们的项目文件都有哪些,然后让我们做出选择选择一个项目保存其log文件。这里我们演示一下选A,
在这里插入图片描述
执行完毕后会输出Done。可以看到log日志已经保存好了。
在这里插入图片描述

源代码解释

::@author 	vovohao
::@function	打印目录下的git项目文件,将指定文件的日志保存到本地

@echo off & setlocal

::设置我们需要使用的变量

set promp=Now we have git projects: (a) SocialNetwork, (b) HIT-Lab1-200111028, (c) HIT-Lab2-200111028, (d) HIT-Lab3-200111028

set LOG_FOLDER=_log
set PROJ_FOLDER=
set LOG_FILE=

echo %promp%
choice /c abcd /m "Please choice the project which you want to save log: "

if %errorlevel%==1 (
	set PROJ_FOLDER=SocialNetwork
	set LOG_FILE=SocialNetwork.log
) 
if %errorlevel%==2 (
	set PROJ_FOLDER=ComputerScienceHIT/HIT-Lab1-200111028
	set LOG_FILE=Lab1.log
) 
if %errorlevel%==3 (
	set PROJ_FOLDER=ComputerScienceHIT/HIT-Lab2-200111028
	set LOG_FILE=Lab2.log
) 
if %errorlevel%==4 (
	set PROJ_FOLDER=ComputerScienceHIT/HIT-Lab3-200111028
	set LOG_FILE=Lab3.log
)

set pre_path=%cd%				::保存当前工作路径
cd %~dp0						::跳转到脚本文件所在路径
cd %PROJ_FOLDER%				::以相对路径的方式进入待保存项目文件
git log > %~dp0/%LOG_FOLDER%/%LOG_FILE%
echo Done
cd %pre_path%					::回到原路径

pause

这里大概解释一下代码逻辑吧。其实就是通过一系列if else语句找到目标项目的路径和保存文件的路径。

之所以说这是一个半自动化脚本,是因为,每当新创建一个项目的时候,我们都要根据项目信息向脚本中添加内容:)。需添加的内容包括,prompt的提示信息、和新的 else if 语句块。参考格式如上。

这里简单解释一下各个参数的含义:

  • LOG_FOLDER 保存log日志的文件夹 相对于脚本文件的相对路径
  • PROJ_FOLDER 项目git文件夹相对于脚本文件的相对路径
  • LOG_FILE 保存log日志的文件名

最后,博主推荐使用VScode进行.bat文件编辑工作


总结

以上就是本文的分享,希望这个小工具可以给需要管理较多项目的朋友带来一些帮助。也欢迎大家进行二次创作。


改进方向

  • 为它添加从文本文件自动读取项目路径和保存文件名的功能。
  • 如果还有时间或许可以实现各个分支的日志都保存的功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值