使用GitHub Actions将一个分支替换为当前分支

时间:2019-08-20 09:13:44

标签: git github yaml github-actions

我正在使用GitHub Actions在我的let insertUpdateValues: (string | number | moment.Moment | null | undefined)[] Type '(string | number | Moment | null | undefined)[]' is not assignable to type 'Test[]'. Type 'string | number | Moment | null | undefined' is not assignable to type 'Test'. Type 'undefined' is not assignable to type 'Test'.ts(2322) 分支中编译一些代码,然后希望它将所有文件推送到另一个分支master,以便GitHub Pages可以生成一个站点。我似乎无法获得将gh-pages的内容移至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 (触发操作)时,在Actions控制台中出现此错误:

master

我不明白为什么,因为如果在Terminal中使用相同的HEAD detached at 19e90c4 nothing to commit, working tree clean ##[error]Process completed with exit code 1. 命令,我不会得到任何错误。

我在“ Git stuff” git下的“动作”运行命令中添加了一行,但出现了以下错误:

echo 'Hello, world.' >test.txt

解决方案(来自rmunn的答案):

[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'

别忘了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 是您的GitHub用户名,USERNAME是您的仓库中设置的GitHub访问令牌秘密,对仓库有写权限,而ACCESS_TOKEN是存储库名称。如果需要,您还可以重命名REPO

1 个答案:

答案 0 :(得分:1)

免责声明:我还没有进入GitHub action beta,所以尽管我认为这个答案是正确的,但我无法对其进行测试。

当前leaves the repo in a detached HEAD state是GitHub checkout动作,因此没有master分支可以推送。您应该可以推HEAD:gh-pages而不是master:gh-pages

当然,您问题中的工作流示例不会更改工作目录,因此git add .没有要添加到索引的内容,因此git commit不会创建空的提交,然后没什么可推。但是,一旦进行了一些更改(要么是因为您的编译步骤正在运行,要么是因为您已经执行了echo 'Hello, world.' >> test.txt的步骤-请注意双箭头,以便将其追加到文件中,否则进行此测试)自第二次提交相同的内容以来,它只能工作一次,而Git会跳过提交),那么您应该发现按HEAD可以满足您的要求。