我已经纠结了太久了,我找不到一种方法来实现一件很简单的事情(至少我是这么想的)。
我的用例是这样的。
我是一名Unity开发人员,我正在开发多个UPM包,任何人都可以使用Unity的包管理器安装。在一个包中,你可以有一个文件夹,命名为(确切的)"Samples~",然后当你使用包管理器上的UI按钮下载这个包时,它可以被导入到一个项目中。
问题是,所有以"~"命名的文件夹在项目视图中都是隐藏的。
所以,基本上,我需要的是:在我的电脑上,文件夹名应该是 "Samples",但是在git上发布的版本中,文件夹应该命名为 "Samples~"。目前,使用 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 '[email protected]'
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中需要一些东西来处理文件夹,就像他们没有一个tilde一样。
或者建议你使用 钩子 下载后重命名文件夹,并在提交前恢复其名称。
这些解决方案都很好,但非常脆弱,而且涉及到很多问题。
我认为,你应该关注在发布时发生的事情,与其在推送和提交之间重命名文件,我建议有一个发布分支,其中包含最终将发布的代码。
这意味着在你上面的工作流程中,将这行修改。
git push origin master
改为
git push origin release/next
而不是在master中修改代码,现在你只需将所有的东西推送到你的release分支,当你准备创建一个release时,你就使用该分支。
HTH。