GitHub에서 위키 페이지를 요청하는 방법은 무엇입니까?


169

GitHub 에서 편집 할 수없는 위키 페이지를 보았습니다 . 그런 다음 프로젝트를 포크하고 "my end"에서 편집 한 다음 pull 요청을 시도했습니다. 위키 는 프로젝트에없고 변경 사항을 커밋 할 방법도 없다는 것이 밝혀졌습니다 .

이 경우에 위키에 대한 변경을 제안하고 싶다면 이메일 외에 다른 방법이 있습니까?

이 시점에서 나는 "유사한 제목의 질문" 에서 대안처럼 보이는 것을 찾았 지만 아직 풀 리퀘스트를 할 수 없었기 때문에 서브 모듈이이 목적에 좋은 방법인지 확신 할 수 없습니다. 이제 어떻게 든 분기 할 수 있다는 것을 알았습니다.이게 갈 길이겠습니까?



나는 내가 파티에 늦었다는 것을 알고 있지만 🎉 .wiki메인 프로젝트 repo의 서브 모듈로 git repo를 사용하는 것이이 상황에 대한 최선의 접근 방식 이라고 생각 합니다.
ipatch

GitHub wiki에서 pull 요청을 활성화하는 해결 방법 : growthwiththeweb.com/2016/07/…
Vadzim

답변:


124

GitHub 는 wiki 저장소에 대한 pull 요청을 지원하지 않고 메인 저장소 만 지원 합니다 (이것은 약간 부끄러운 일입니다. IMO이지만 이해할 수 있습니다).

다음은 한 프로젝트에서 위키에 대한 커뮤니티 업데이트를 관리하면서 소스 코드와 같이 엄격한 제어를 유지하는 흥미로운 방법입니다.

내 제안 된 워크 플로는 다음과 같습니다.

  1. Github 계정에서 Taffy 위키의 포크를 수동으로 생성합니다.
    • github 계정에 새 저장소를 만듭니다. "Taffy-Wiki"라고 부르 자.
    • Taffy 위키 저장소를 로컬 머신 어딘가에 복제하십시오. git clone git@github.com:atuttle/Taffy.wiki.git
    • 원래 "origin"원격을 제거하고 github repo를 새 "origin"으로 추가 git remote rm origin하고git remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. 당신의 제안 된 변경 사항은 로컬, 다음 github의 계정으로 밀어 확인 : git push -u origin master( '-u 기원 마스터'첫 번째 시간을 요구, 이후에 바로 할 git push)
  3. 변경 사항을 검토하고 병합하도록 요청하는 공식 Taffy 문제 추적기에 티켓을 제출 하십시오 . 저장소에 대한 링크를 포함하고 변경 사항을 설명하십시오.
  4. 고토 # 2

( Taffy 문서에 기여할 수있는 방법 에서 .)

저라면 메인 저장소 (즉, 포크 한 저장소)에 위키 업데이트를 제안하는 문제를 만들 것입니다. 문제가 활성화되지 않은 경우 이메일은 제가 생각할 수있는 유일한 다른 옵션에 대한 것입니다.


@ Chi-YoungJeffreyLii 이러한 명령은 내 것이 아니라 내가 인용 한 블로그 게시물에서 가져온 것입니다 (인용문 아래에 소스를 연결했습니다). Windows를 포함하고 Bash 셸이있는 UNIX 또는 GNU / Linux OS를 포함하여 Git이있는 모든 플랫폼에서 작동해야하는 명령 줄 Git 명령입니다.
Calrion

Nitpick : 원본 원격 제거 / 추가 시퀀스는 아마도 약간 (불필요하게) 복잡 할 수 있으며 "포크"는 기술적으로 원본이 아니므로 이름이 잘못되었습니다. 새로운 개인 GitHub 저장소 (예 : "personal")를위한 로컬 복제본에 두 번째 원격 만 추가하고 정상적으로 푸시하는 것이 좋습니다. 그런 식으로 다른 사람의 작업과 동기화하기 위해 일반적으로 실제 원본 저장소에서 가져올 수도 있습니다.
tne

8

지금까지 https://devonfw.com 에서 문제에 대한 최상의 솔루션을 찾았습니다 .

  1. 문서 폴더 내의 코드와 함께 문서를 git 저장소에 넣으십시오.
  2. wiki git에 적용된 변환으로 해당 문서 폴더의 모든 변경 사항을 스테이징하는 마법으로 travis-ci 빌드를 확장하십시오. 아래의 마지막 예제 링크를 참조하십시오.
  3. 위키를 문서에 대한 읽기 전용보기로 간주하십시오. github.com을 사용하면 문서 폴더에있는 파일을 계속보고 직접 편집 할 수 있습니다. 따라서 위키를 통하지 않고 브라우저 내에서 몇 초 안에 오타를 수정할 수 있습니다 (저장소에 대한 권한이없는 PR에서도).
  4. 컨트 리뷰 터가 포크 할 때 코드가 포함 된 문서도 가지고 있습니다. 그는 하나의 PR에서 둘 다 변경할 수 있으며 동일한 프로세스에서 모두 검토되므로 코드와 문서를 병합 한 후에도 동기화 상태를 유지합니다. 여전히 사이드 바 등으로 위키에서 문서를 읽는 데 더 좋은 UX가 있습니다.

우리는 100 % OSS이기 때문에이 훌륭한 솔루션을 만들기 위해 열심히 노력하고 있습니다. 예를 들어 링크는 다음과 같습니다.


6

나는 이것에 대해 다른 접근 방식을 취했는데, 이는 정확히 동일한 콘텐츠를 메인 저장소와 위키 모두에 푸시하는 것입니다. 이것은 모든 사람의 취향이 아니지만 Risk-First 는 주로 메인 저장소에 몇 개의 Jekyll 페이지가있는 위키입니다.

이것은 pull request / fork 프로세스가 잘 작동 함을 의미합니다. 그러나 pull-request를 병합 한 후에는 로컬 저장소로 가져온 다음 여러 원본 URL로 git이 잘 지원하는 기본 저장소와 위키 모두에 푸시하는 추가 단계를 수행해야합니다.

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: git@github.com:risk-first/website.git
  Push  URL: git@github.com:risk-first/website.wiki.git
  Push  URL: git@github.com:risk-first/website.git
  HEAD branch: master

이를 달성하기 위해 다음 두 저장소의 커밋을 병합했습니다.

두 개의 Git 리포지토리를 어떻게 병합합니까?

그런 다음 다음과 같이 두 저장소로 푸시합니다.

Git-두 개의 리모컨에 코드 푸시

이것이 누군가를 돕기를 바랍니다.


참고로, 저는이 접근 방식을지지합니다. 꽤 잘 작동했습니다. 그러나 완전히 다른 이유로 전체를 Jekyll로 마이그레이션하게되었으므로 이것이 더 이상 riskfirst 작동 방식이 아닙니다
Rob Moffat

2

풀 리퀘스트는 할 수 없지만 이슈를 열고, 위키 페이지에 링크를 붙여넣고, 위키 페이지에서 위키 페이지에 병합하도록 할 수 있습니다.

요컨대 :

위키 페이지 저장소를 복제하고, ( git clone YOUR_FORKED_REPO.wiki.git), 모든 위키 커밋을 하나의 큰 커밋으로 스쿼시 한 ​​다음,이 큰 스쿼시 커밋을 해당 저장소에 체리 선택하면됩니다. 그러면 모든 위키 변경 사항이 위키로 가져옵니다.

전체 지침 :

(여기 Larry Botha의 github 요점에서 복사 : https://gist.github.com/larrybotha/10650410 ) :

---------- 위 GITHUB GIST에서 복사-붙여 넣기 시작 ------------

분기 된 Github 저장소에서 Wiki 변경 사항 병합

이것은 Roman Ivanov의 How To Merge Github Wiki Changes From One Repository to another , by Roman Ivanov에서 영감을 얻었습니다 (또는 기본적으로 복사) .

술어

OREPO : 원본 저장소-소유자가 생성하거나 유지 관리하는 저장소

FREPO : 아직 OREPO 에 있지 않은 위키에 대한 업데이트가있는 것으로 추정되는 분기 된 저장소

기여

분기 한 리포지토리의 위키에 기여하려면 다음을 수행하십시오.

  • 저장소를 포크
  • 컴퓨터에 위키 만 복제 : $ g clone [FREPO].wiki.git
  • 로컬 포크 위키 저장소를 변경하십시오.
  • 변경 사항을 GitHub에 푸시

작성자에게 변경 사항이 있음을 알릴 준비가되면 다음을 수행하십시오.

  • OREPO에 이슈를 열다
  • 쉽게 병합 할 수 있도록 위키의 git 저장소에 대한 직접 링크를 제공하십시오. 예 : [ FREPO ] .wiki.git

변경 사항 병합

OREPO 의 소유자로서, 이제 다른 사람의 FREPO 에있는 위키에 대한 업데이트가 있다는 메시지를 받았습니다 .

위키 변경 사항이 최신 OREPO 위키 에서 분기 된 경우 다음을 수행 할 수 있습니다.

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git

# squashing all FREPO changes
$ git pull [FREPO].wiki.git master

$ git push origin master

경우 OREPO의 위키 앞서 어디에이다 FREPO가 에서 포크, 다음을 수행 :

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git
$ git fetch [FREPO] master:[FREPO-branch]
$ git checkout [FREPO-branch]

#checkout to last OREPO commit
$ git reset --hard [last-OREPO-commit-hash]

# do massive squash of all FREPO changes
$ git merge --squash HEAD@{1}
$ git commit -m "Wiki update from FREPO - [description]"
$ git checkout master

# cherry-pick newly squashed commit
$ git cherry-pick [OREPO-newly-squashed-commit]
$ git push

---------- 위 GITHUB GIST의 복사-붙여 넣기 끝 ------------


0

한 페이지의 긴 문서를 가지고 있어도 괜찮다면 (실제로 더 마음에 든다), README.MD위키의 내용을 가로 채서 거기에 넣을 수 있습니다 .

일반 저장소의 일부로 추적 될뿐만 아니라 홈 페이지에도 표시됩니다.

빠른 참조로 시작한 다음보다 자세한 설명 / 지침으로 들어가 일반 사용자가 먼저보다 일반적인 정보를 볼 수 있도록 만들 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.