在git上的文件夹名与本地文件夹名不同/在拉取之前执行github操作。

问题描述 投票:1回答:1

我已经纠结了太久了,我找不到一种方法来实现一件很简单的事情(至少我是这么想的)。

我的用例是这样的。

我是一名Unity开发人员,我正在开发多个UPM包,任何人都可以使用Unity的包管理器安装。在一个包中,你可以有一个文件夹,命名为(确切的)"Samples~",然后当你使用包管理器上的UI按钮下载这个包时,它可以被导入到一个项目中。

UPM

问题是,所有以"~"命名的文件夹在项目视图中都是隐藏的。

所以,基本上,我需要的是:在我的电脑上,文件夹名应该是 "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里有一个不同的名字,或者更好的是只在发布版里)?

git unity3d github github-actions
1个回答
0
投票

这不是github动作能处理的事情。请看事件.

如果我继续你的推理,我可能会建议你在IDE中需要一些东西来处理文件夹,就像他们没有一个tilde一样。

或者建议你使用 钩子 下载后重命名文件夹,并在提交前恢复其名称。

这些解决方案都很好,但非常脆弱,而且涉及到很多问题。

我认为,你应该关注在发布时发生的事情,与其在推送和提交之间重命名文件,我建议有一个发布分支,其中包含最终将发布的代码。

这意味着在你上面的工作流程中,将这行修改。

git push origin master

改为

git push origin release/next

而不是在master中修改代码,现在你只需将所有的东西推送到你的release分支,当你准备创建一个release时,你就使用该分支。

HTH。

© www.soinside.com 2019 - 2024. All rights reserved.