用git指令别名,解决unity环境问题

news2024/9/20 14:48:34

文章目录

      • 背景
      • 问题解决
        • 尝试1
        • 尝试2
        • 尝试3

背景

unity 项目开发时,由于我本机的配置和项目组其他小伙伴的配置不一样,使用统一的配置打开项目会出现花屏的现象,经过摸索尝试,需要修改 unity 的Project Settings。修改之后,项目文件会有变更,若是提交,其他小伙伴 pull 之后会导致他们的工程不可用。所以我只能本地修改这个文件,且不能将该文件的变更提交到项目当中。
在这里插入图片描述

问题解决

尝试1
git update-index --assume-unchanged ProjectSettings/ProjectSettings.asset

本地设置忽略 ProjectSettings 文件没有发生变更,这样 pull ,push 代码都没有问题,但是切换分支就会产生冲突。每次切换分支就需要解决冲突,还是很麻烦。

尝试2

在这里插入图片描述
git 指令支持 hook,我只需要每次切换分支前将 ProjectSettings 还原,切换分支后再修改 ProjectSettings 文件,并重新设置本地忽略 ProjectSettings 文件的变更,就可以实现我想要的功能。
但实际测试下来,发现 git 并不支持 pre-checkout,只支持 post-checkout。所以这种方式也不太行。

尝试3

既然前两种方式都不行,那就只能自己写脚本来实现了,git 命令支持别名,可以将别名指向自己写的脚本。
设置checkoutscript别名

git config --global alias.checkoutscript '!sh D:\Applications\script\checkoutscript.sh'

checkoutscript脚本,假设我们的项目为 abc

#!/bin/bash
echo "run checkout script"

# 检查参数数量
if [ $# -eq 0 ]; then
    echo "no params"
    exit 1
fi

# 检查第一个参数
first_arg="$1"
# 如果第一个参数是 '.' 或 '-b'
if [ "$first_arg" == "." ] || [ "$first_arg" == "-b" ]; then
    # 将所有参数传递给 git checkout
    git checkout "$@"
    exit 0
fi

# 检查remote url
remote_url=$(git remote get-url origin) 
echo "$remote_url"
if [ -z "$remote_url" ]; then  # 如果 URL 为空
    git checkout "$@"
    exit 0
fi

# 如果不是abc项目,执行checkout
if ! [[ "$remote_url" = *"abc"* ]]; then  
    # echo "remote URL does not contain 'abc', performing checkout with provided branch name."
    git checkout "$@"
    exit 0
fi

branchName=$1
if [ -z "$branchName" ]; then
    echo "branchName is empty"
else
    echo "branchName is not empty: $branchName"
    echo "Current directory is: $(pwd)"
    echo "pre checkout"
    git update-index --no-assume-unchanged ProjectSettings/ProjectSettings.asset
    git checkout ProjectSettings/ProjectSettings.asset
    git checkout $branchName
    # 变更配置文件,并本地忽略配置文件的变更
    sed -i 's/m_APIs: 0b00000002000000/m_APIs: 020000000b000000/g' ProjectSettings/ProjectSettings.asset
    sed -i 's/selectedPlatform: 2/selectedPlatform: 4/g' ProjectSettings/ProjectSettings.asset
    git update-index --assume-unchanged ProjectSettings/ProjectSettings.asset
    echo "end after checkout"
fi

这样,我每次需要切换分支的时候直接执行 git checkoutscript xxx 就可以了,也不影响 pull 和 push操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

骑行耳机品牌前五名排行榜:5大优质骑行耳机闭眼入都不踩雷!

近年来,骨传导耳机市场迅速崛起,但伴随着这股热潮,市场上也出现了诸多鱼龙混杂的杂牌品牌,有不少非专业的产品趁机涌入市场。这些骑行耳机在骨传导技术、防水性能、稳定性及音效调校等上百项关键指标上缺乏深入研发与优化&#xf…

FastGPT+ollama 搭建私有AI大模型智能体工作流-Mac

一、大模型工作流的优势 1. 降低任务门槛:工作流可以将复杂任务分解成多个小任务,降低每个任务的复杂度,从而减少对提示词和大模型推理能力的依赖。这样可以提升大模型处理复杂任务的性能和容错能力。 2. 提升任务效率:工作流可以…

在选择或推荐数据恢复软件之前,您如何测试和审查它?

数据恢复软件可以帮助您从各种存储设备中检索丢失或删除的文件,例如硬盘驱动器,USB闪存驱动器,存储卡或智能手机。但是,并非所有数据恢复软件都是一样的,根据您的情况和需求,有些软件的性能可能比其他软件更…

多商户入驻商城系统源码+收银系统源码

随着移动互联网的不断发展,私域小程序对于零售门店来说早已不再陌生。很多门店也都搭建了自己专属的私域商城,但是私域商城一直是不温不火的状态,尤其针对一些腰尾部商户来说,无小程序运营能力,小程序流量匮乏&#xf…

C#实现多选下拉框

1、创建多选下拉框控件 using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace DFT_FFTApp.userCtrl {/// <summary>/// 多选下拉控件//…

centos 虚拟机器刚刚安装没有ip地址的问题

刚刚安装好的虚拟机器&#xff0c;我们通过 ip addr 查看ip发现是这样的 该虚拟机器没有ip地址&#xff0c;那么怎么办 原来是在/etc/sysconfig/network-scripts/ifcfg-ens33中关于网络的配置有问题 ONBOOTno 表示不开启网卡&#xff0c;我们需要将这个值进行修改为yes 当前…

上位机图像处理和嵌入式模块部署(linux程序加解密)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们平时在开发程序的时候&#xff0c;如果仅仅是自己使用&#xff0c;那么代码和使用场景都是自己控制的&#xff0c;一般来说问题不大。但是程序…

开放式耳机好还是入耳式耳机好?2024五款热销开放式耳机推荐!

开放式耳机与入耳式耳机各有优缺点&#xff0c;适合不同的使用场景和用户需求。 开放式耳机的优点主要包括&#xff1a; 1. 佩戴舒适性好&#xff0c;由于设计宽松&#xff0c;不会给耳朵带来压迫感&#xff0c;适合长时间使用 。 2. 透气性能好&#xff0c;尤其在夏天或运动…

C盘爆满为什么都要——关闭休眠功能?关了会有什么影响?

C盘爆满为什么都要——关闭休眠功能&#xff1f;关了会有什么影响&#xff1f; 很多C盘爆满的用户中&#xff0c;都会有一个名字是hiberfil.sys的文件&#xff0c;当启用休眠功能时&#xff0c;系统状态&#xff08;包括打开的应用程序和文件&#xff09;会保存到硬盘上的hibe…

第二证券:美股小幅收跌,纳指与标普止步八连涨

当地时间8月20日&#xff0c;美股三大指数小幅收跌。截至收盘&#xff0c;道指跌61.56点&#xff0c;跌幅为0.15%&#xff0c;报40834.97点&#xff1b;纳指跌59.83点&#xff0c;跌幅为0.33%&#xff0c;报17816.94点&#xff1b;标普500指数跌11.13点&#xff0c;跌幅为0.20%…

【18】中级提升1

题目一 策略&#xff1a; 每次将绳子右端点放在一个点上&#xff0c;看绳子往左可以覆盖多少个点。 如何知道左边覆盖几个点&#xff1f; 在绳子右端点cur左边有序区域找第一个大于等于arr[cur]-L的位置 滑动窗口 每次绳子左侧放在一个点上&#xff0c;然后有边界向右走&…

用 ChatGPT 写文章、论文,你有哪些绝活?

最强 AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/绝活不敢说&#xff0c;但是&#xff0c;学会了这个&#xff0c;以前一周写万字&#xff0c;现在两个小时就能搞定&#xff0c;写…

Codeforces EPIC August 2024(Div.1+Div.2) A~E

A. Distanced Coloring &#xff08;思维&#xff09; 题意&#xff1a; 给出一个 n m n\times m nm 网格和一个正整数 k k k。 现在要用用一些颜色为网格着色&#xff0c;并满足以下条件&#xff1a; 如果 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​) 、 ( x 2 , y 2 ) (x_2…

测试环境频繁报:RedisCommandInterruptedException: Command interrupted

比较奇葩的是&#xff1a;本机&#xff0c;开发&#xff0c;生产都没问题&#xff0c;就测试环境有这问题&#xff0c;导致docker容器不停重启&#xff0c;就是起不来。 本机中断程序&#xff0c;同样也会报这个问题 排查了半天&#xff0c;找到原因&#xff0c;应该是redis在…

技术分享-商城篇-支付回调(十四)

概述 在前面我们说到B2C商城中的订单支付模块&#xff0c;也有聊到支付回调&#xff0c;先来了解一下&#xff0c;为什么我们不能在支付完成当前通知同步去更新支付状态&#xff0c;这样不是更加快捷实时吗&#xff1f;为什么一定要走异步回调通知&#xff1f;带着这些问题&am…

深度学习基础—Batch Norm

对于一个神经网络我们知道&#xff0c;归一化输入特征是加速网络训练的技巧之一&#xff0c;因为归一化后&#xff0c;损失函数的图像就会由狭长变得更圆&#xff0c;那么这是否启发我们&#xff0c;在深度更深模型中&#xff0c;对各层的输出进行归一化&#xff0c;有益于下一…

PythonStudio 控件使用常用方式(三十一)TUpDown

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

从零到一:Spring Boot 与 RocketMQ 的完美集成指南

1.Rocket的概念与原理 RocketMQ 是一款由阿里巴巴开源的分布式消息中间件&#xff0c;最初用于支持阿里巴巴的海量业务。它基于发布-订阅模型&#xff0c;具备高吞吐、低延迟、高可用和强一致性的特点&#xff0c;适用于消息队列、大规模数据流处理等场景。以下是对 RocketMQ …

docker连接宿主机redis,提示Connection refused

目录 一、测试环境 二、问题现象 三、问题总结 一、测试环境 centos 7 redis-5.0.14 docker-26.0.1 二、问题现象 服务器重启后docker连接宿主机redis&#xff0c;提示Connection refused Reconnecting, last destination was /172.25.xxx.x:6379 …

4种回收站数据恢复方法,让数据快速恢复!

回收站里的重要数据怎么突然就消失得无影无踪了&#xff1f;别慌&#xff01;别慌&#xff01;在这里&#xff0c;为您精心准备了4种回收站数据恢复方法&#xff0c;这五种回收站数据恢复方法都是经过实际测试的&#xff0c;完全可以帮我们找回那些被删除的数据&#xff01; 回…