git stash排除指定文件

缘起

在开发过程中,经常会使用 git stash 命令来暂存变动。然而,该命令只能暂存所有的变动,而不能排除指定的文件。这导致在开发过程中可能会遇到以下场景:

有时我们需要修改某些配置文件,例如 bootstrap.yml 中的 register-enabled: false,用于禁止将自己的服务注册到 Nacos,以防止其他开发人员调用我们本地启动的服务。但这些修改并不打算提交,只是在本地开发时使用。
然而,使用 git stash 命令时,每次都会将 bootstrap.yml 文件一同暂存。这样一来,如果不小心启动了服务,就会把自己的本地服务注册到 Nacos,从而导致其他人在联调时出现问题。

解决办法

在查阅了 git stash 的帮助文档后,发现没有提供排除指定文件不暂存的选项。因此,我思考了一个比较巧妙的解决办法,即编写一个脚本来处理这种情况。具体思路如下:

  1. 拷贝bootstrap.yml到临时位置
  2. 还原bootstrap.yml文件
  3. git stash 暂存当前变动
  4. 从临时位置把bootstrap.yml在移动回来

脚本如下

可以把该脚本配置到环境变量path下,这样可以在任意位置执行

chcp 65001
@echo off
if "%1"=="" (
echo "请输入日志" 
goto end
)

echo 当前盘符和路径:%cd%
echo 拷贝%cd%\bootstrap.yml到d:\
copy /Y  %cd%\bootstrap.yml d:\
echo 还原bootstrap.yml
git checkout -- bootstrap.yml
echo stash 保存
git stash -u -m %1
echo 移动d:\bootstrap.yml到%cd%\bootstrap.yml
move /Y  d:\bootstrap.yml %cd%\
:end

以此类推,可以指定多个文件或文件夹等,请自行编写脚本

有疑问可以关注:鲁班曰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值