git - git 上的文件夹名称与本地不同 // 在拉取之前执行 github 操作
问题描述
我已经为此苦苦挣扎了太久了,我找不到一种方法来实现一件非常简单的事情(至少我是这么想的)。
我的用例是这样的:
我是一名 Unity 开发人员,我正在开发多个 UPM 包,任何人都可以使用 Unity 的包管理器安装这些包。在一个包中,您可以有一个名为(确切地说)“Samples~”的文件夹,当您使用包管理器上的 UI 按钮下载此包时,可以将其导入项目中:
问题是,所有最后以“~”命名的文件夹都隐藏在项目视图中。
所以,基本上,我需要的是:在我的电脑上,文件夹名称应该是“Samples”,但是在 git 上发布时,文件夹应该命名为“Samples~”。Atm,使用 github 操作,我可以在每次推送后将 Samples 重命名为 Samples~,这很棒!但我不能完全相反,因为 github 操作没有“拉”事件......
这是我的脚本可以正常工作:
name: Rename tilded folders
on:
push:
branches:
- master
jobs:
rename_samples:
name: Create branches
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
git checkout master
git config --global user.name 'github-bot'
git config --global user.email 'github-bot@users.noreply.github.com'
if [[ -d "Samples" ]]; then
git mv Samples Samples~
rm -f Samples.meta
git commit -am "rename: Samples => Samples~"
git push origin master
else
echo "${i}Samples does not exist"
fi
if [[ -d "Documentation" ]]; then
git mv Documentation Documentation~
rm -f Documentation.meta
git commit -am "rename: Documentation => Documentation~"
git push origin master
else
echo "${i}Documentation does not exist"
fi
有没有一种简单的方法来实现我所需要的(基本上,在 git repo 中有一个不同的名称,或者只有在版本中更好)?
解决方案
这不是 github 操作处理的事情。见事件。
如果我要继续您的推理,我可能会建议您在 IDE 中需要一些东西来处理文件夹,就好像它们没有波浪号一样。
或者 guggest 使用一个git 钩子,在下载文件夹后重命名它们,并在提交之前恢复名称。
这些解决方案很好,但非常脆弱和复杂。
IMO,您应该关注发布时发生的事情,而不是在推送和提交之间重命名文件,我建议您有一个发布分支,其中包含最终将发布的代码。
这意味着在您上面的工作流程中,更改此行:
git push origin master
至
git push origin release/next
现在您无需修改 master 中的代码,只需将所有内容推送到您的发布分支,当您准备好创建发布时,您就可以使用该分支。
HTH。
推荐阅读
- azure - Azure 管道
- angular - Angular 没有运行 data-onsuccess 函数
- excel - Excel VBA 点击问题
- macos - 打开文件时,Apple Script 会多次运行
- azure - 从 Postman 生成 Azure 访问令牌
- reactjs - 为什么我总是得到一个不允许通配符 * 的 cors 错误,尽管我在服务器上指定了一个来源?
- google-apps-script - 如何设置在每年的第一天工作的触发器?
- unity3d - Unity FixedUpdate 与输入时更新物理
- php - xdebug 2.7.1 是否支持 php 7.0 ubuntu?
- javascript - 有没有办法对 javascript 数组进行重复数据删除并组合数据的值?