모든 GitHub의 저장소는 할 수 있다 ( 또는 수 A) GitHub의 페이지 지킬으로 구축 할 수 있습니다 웹 사이트를. GitHub는 새 커밋을 푸시 할 때마다 사이트를 빌드합니다.
새 커밋을 푸시하지 않고 Github 페이지 웹 사이트를 강제로 새로 고치는 방법이 있습니까?
답변
GitHub 지원, 2014-06-07 :
현재 적절한 브랜치에 커밋을 푸시하지 않고는 수동으로 재 빌드를 트리거 할 수 없습니다.
편집하다:
Andy가 주석에서 지적했듯이 다음 명령을 사용하여 빈 커밋을 푸시 할 수 있습니다.
git commit -m 'rebuild pages' --allow-empty
git push origin <branch-name>
편집 2 :
GitHub Actions 덕분에 매일 게시를 트리거하는 것이 매우 쉽습니다 : https://stackoverflow.com/a/61706020/4548500 .
답변
빠른 스크립트 솔루션을 원한다면 여기에 있습니다. 다음 작업을 한 번만 수행하고 GitHub 페이지를 다시 빌드 할 때마다 스크립트를 실행하십시오.
1. 명령 줄에 대한 개인 액세스 토큰을 만듭니다.
- 여기 의 공식 도움말을 따라 개인 액세스 토큰을 만드 십시오 . 기본적으로 GitHub 계정에 로그인하고 다음으로 이동해야
Settings > Developer settings > Personal access tokens > Generate new token
합니다. - 틱
repo
범위. - 토큰을 복사하십시오.
2. 다음 스크립트를 만듭니다.
-
라는 파일
RebuildPage.sh
을 만들고 다음 줄을 추가합니다.#!/bin/bash curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds
여기,
yourname
GitHub 사용자 이름으로 바꿉니다 .yourtoken
복사 한 개인 액세스 토큰으로 바꿉니다 .yourrepo
저장소 이름으로 바꿉니다 .
3. 스크립트를 실행합니다.
-
Windows 10을 사용하는 경우 :
- 아직 설정하지 않은 경우 Linux 용 Windows 하위 시스템 을 설정해야합니다 . 그렇게하려면 이것을 따르십시오 .
#!/bin/bash
스크립트에서 첫 번째 줄 ( )을 제거하고 스크립트를RebuildPage.bat
. (즉, 대체.sh
와.bat
스크립트 파일 이름)-
위의 포인트에 대한 대안 :
.sh
파일 실행을위한 더블 클릭 기능을 얻으려면 :- 파일
bash.exe
의 기본 프로그램으로 설정.sh
합니다. -
을 열고
regedit.exe
편집HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command
합니다.(Default)
값을 다음으로 설정하십시오 ."C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
- 파일
-
이제 GitHub 페이지를 다시 빌드하려는 경우에도 스크립트를 두 번 클릭합니다. 끝난!
-
Linux / Mac을 사용하는 경우 스크립트 실행은 다른 스크립트 실행과 동일합니다. 끝난!
솔루션에 대한 추가 참고 사항 :
이 솔루션은 GitHub REST API v3의 API를 사용합니다. 다음 은 API에 대한 공식 문서입니다.
답변
나는 잠시 동안이 문제가 있었고 마스터 브랜치로 푸시해도 myapp.github.io
두 가지 이유로 아무것도 변경되지 않았습니다 .
1-빌드
아무리 많은 시간을 마스터에 밀어 넣어도 빌드가 시작되지 않았습니다. Github 온라인 편집기에서 내 파일을 수정하여 해결 방법을 찾았습니다 (index.html을 열고 Github 웹 사이트에서 편집 한 다음 커밋).
2-캐싱 문제
성공적으로 빌드 한 후에도에서 똑같은 페이지가 계속 표시 myapp.github.io
되며로 하드 다시로드 Ctrl + Shift + R
해도 문제가 해결되지 않습니다. 대신 Chrome을 사용하는 경우 페이지를 검사하고 Application
탭으로 이동하여 왼쪽 메뉴에서 ‘저장 용량 삭제’를 선택한 다음 메뉴 하단의 ‘사이트 데이터 삭제’를 클릭하세요.
답변
이제 GitHub Actions를 사용할 수 있으므로 간단합니다.
# File: .github/workflows/refresh.yml
name: Refresh
on:
schedule:
- cron: '0 3 * * *' # Runs every day at 3am
jobs:
refresh:
runs-on: ubuntu-latest
steps:
- name: Trigger GitHub pages rebuild
run: |
curl --fail --request POST \
--url https://api.github.com/repos/${{ github.repository }}/pages/builds \
--header "Authorization: Bearer $USER_TOKEN"
env:
# You must create a personal token with repo access as GitHub does
# not yet support server-to-server page builds.
USER_TOKEN: ${{ secrets.USER_TOKEN }}
이를 수행하는 샘플 저장소 : https://github.com/SUPERCILEX/personal-website/actions
페이지 API : https://developer.github.com/v3/repos/pages/#request-a-page-build
답변
변경 사항을 GitHub 저장소에 푸시 한 후에도 오늘 변경 사항을 볼 수 없었습니다. 그런 다음 저장소 설정을 확인하여 자세한 정보를 확인했습니다.이 모든 시간에 빌드가 실패하고 변경 사항을 볼 수 없었습니다.
“사이트 구축에 문제가 있습니다. 페이지를 구축 할 수 없습니다. 나중에 다시 시도하십시오.”라는 메시지가 나타날 수도 있습니다.
그런 다음 최근 커밋을 확인 하고이 문제의 원인을 찾으려고 노력했습니다. 결국 문제를 해결할 수있었습니다.
거기에 있었다 태그 (,)의 추가 쉼표 것을이 문제가 발생합니다 .
.md 파일에 문제가있는 경우 관련 오류 메시지가 표시되지 않습니다. 빌드 상태를 확인하고 동일한 문제가 발생하면 변경 사항을 비교하는 것이 좋습니다.
답변
빈 커밋은 나를 위해 작동하지 않았지만 @benett 답변에 따르면 이것은 나를 위해 일했습니다.
Postman을 열고 다음 URL로 새 요청을 생성합니다. https://api.github.com/repos/ [user_name] / [repo_name] / pages / builds (이름 및 repo로 대체), POST 방법을 선택합니다.
실행하기 전에 headers
탭으로 이동 Accept
하여 값이 있는 새 키 를 추가하십시오.application/vnd.github.mister-fantastic-preview+json
이제 실행하고 페이지를 다시 방문 할 수 있습니다.
답변
이것은 현재 미리보기
https://developer.github.com/v3/repos/pages/#request-a-page-build 에 있지만 GitHub API v3부터 가능합니다.
POST /repos/:owner/:repo/pages/builds