我正在使用 GitHub Actions 在我的master
分支中编译一些代码,然后我希望它将所有文件推送到另一个分支gh-pages
,以便 GitHub Pages 可以生成一个站点。我似乎无法让 Actions 将内容移动master
到gh-pages
.
name: Build & Jekyll
on:
push:
branches:
- master
jobs:
build:
# needs: nothing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Git stuff
run: |
git config user.email "email@email.com"
git config user.name "Name"
git add .
git commit -m "message"
git push origin master:gh-pages
当我将提交推送到master
(触发操作)时,我在操作控制台中收到此错误:
HEAD detached at 19e90c4
nothing to commit, working tree clean
##[error]Process completed with exit code 1.
我不明白为什么,因为如果我git
在终端中使用相同的命令,我不会收到任何错误。
我在“Git stuff”下的 Actions run 命令中添加了一行,echo 'Hello, world.' >test.txt
但它却给出了这些错误:
[detached HEAD 5edf030] message
1 file changed, 1 insertion(+)
create mode 100644 test.txt
error: src refspec master does not match any
error: failed to push some refs to 'https://github.com/iwiedenm/ultimate-jekyll'
解决方案(来自 rmunn 的回答):
name: Build & Jekyll
on:
push:
branches:
- master
jobs:
build:
# needs: nothing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Git stuff
run: |
git config user.email "your@email.com"
git config user.name "Jonsnow"
git add .
git commit -m "message"
git remote set-url origin https://USERNAME:${{secrets.ACCESS_TOKEN}}@github.com/USERNAME/REPO.git
git remote -v
git checkout -b gh-pages
git push origin HEAD:gh-pages --force
不要忘记这USERNAME
是您的 GitHub 用户名,ACCESS_TOKEN
是在您的存储库的秘密中设置的 GitHub 访问令牌秘密,对存储库具有写入权限,并且REPO
是存储库名称。gh-pages
如果您愿意,也可以重命名。