Как вытащить заявку на вики-страницу на GitHub?


160

Я видел вики-страницу на GitHub, которая не открыта для редактирования. Затем я раздвоил проект, отредактировал его на «моем конце» и попытался сделать запрос на извлечение. Оказывается, вики нет в проекте, и нет способа внести в нее изменения.

Кроме электронной почты, есть ли способ продолжить, если я хочу предложить изменение вики в этом случае?

В этот момент я обнаружил что-то вроде альтернативы в разделе «Вопросы с похожими заголовками», но я пока не мог выполнить запрос на получение, и поэтому я не уверен, что подмодули - хороший способ для этой цели. Теперь я вижу, что мог бы как-то разветвлять это ... Так это путь?



Я знаю, что опаздываю на вечеринку 🎉 на этот раз, но я думаю, что использование .wikigit-репо в качестве подмодуля основного репо-проекта кажется лучшим подходом к этой ситуации.
ipatch

Временное решение для включения запросов на получение ответов
Вадим

Ответы:


120

GitHub не поддерживает запросы извлечения для вики-репозитория , только основной репозиторий (это немного обидно, IMO, но я могу это понять).

Вот интересный способ, которым один проект управляет обновлениями сообщества в своей вики, сохраняя при этом жесткий контроль, как и для исходного кода:

Мой предложенный рабочий процесс такой:

  1. Вручную создайте форк вики Taffy на вашем аккаунте Github:
    • Создайте новый репозиторий в своей учетной записи на github. Давайте назовем это "Taffy-Wiki".
    • Клонируйте репозиторий Taffy wiki на свою локальную машину: git clone git@github.com:atuttle/Taffy.wiki.git
    • Удалите оригинальный «origin» пульт и добавьте ваш репозиторий github как новый «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 origin master' требуется только в первый раз; потом просто сделайте git push)
  3. Отправьте тикет официальному трекеру проблем Taffy с просьбой проверить ваши изменения и объединить их. Обязательно укажите ссылку на репозиторий и опишите, что вы изменили.
  4. Goto # 2

(Из того, как вы можете внести вклад в документацию Taffy .)

Если бы это был я, я бы создал проблему в главном репозитории (то есть ту, которую вы разбудили), предлагая обновить вики. Если проблемы не разрешены, то электронная почта - единственная другая опция, о которой я могу подумать.


@ Chi-YoungJeffreyLii Эти команды не мои, а взяты из блога, который я цитировал (я связал источник под цитатой). Это команды Git командной строки, которые должны работать на любой платформе с Git, включая Windows, включая ОС UNIX или GNU / Linux с оболочкой Bash.
Calrion

Nitpick: последовательность удаленного удаления / добавления источника, возможно, немного (излишне) запутана, плюс «форк» технически не является источником, поэтому имя вводит в заблуждение. Я предложил только добавить второй пульт на локальном клоне для нового личного репозитория GitHub (например, с именем «personal») и нажать на него как обычно. Таким образом, можно по-прежнему извлекать данные из репозитория реального источника, чтобы обычно синхронизировать их с работой других.
TNE

5

Я применил к этому другой подход, который заключается в том, чтобы помещать один и тот же контент в основной репозиторий и вики. Это не всем по вкусу, но Risk-First - это в основном вики с несколькими страницами Джекилла в основном репо.

Это означает, что процесс pull-request / fork работает нормально. Тем не менее, после слияния pull-запроса я должен сделать еще один шаг: перетащить в мой локальный репозиторий, а затем перенести как в основной репозиторий, так и в вики, который git прекрасно поддерживает с несколькими источниками URL:

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, так что это уже не то, как рискует больше
Роб Моффат

5

На сегодняшний день мы нашли лучшее решение для этой проблемы в https://devonfw.com :

  1. Поместите вашу документацию в репозиторий git вместе с кодом внутри папки с документацией.
  2. Расширьте свою сборку travis-ci с помощью некоторого волшебства, которое поэтапно вносит все изменения из этой папки документации с преобразованиями, примененными к вики-git. Смотрите последний пример ссылки ниже.
  3. Считайте вики доступным только для чтения в документации. Обратите внимание, что на github.com вы все еще можете просматривать и редактировать файлы непосредственно в папке с документацией. Таким образом, вы все еще можете исправить опечатки в браузере в течение нескольких секунд (даже если PR без разрешений на репо) - только не через вики.
  4. Когда участник разветвляется, у него также есть документация с кодом. Он может измениться как в одном PR, так и во всех проверяется в одном и том же процессе, поэтому после слияния код и документ остаются синхронизированными. Тем не менее, у вас есть приятный UX для чтения документации в вики с боковой панелью и т. Д.

Поскольку мы на 100% OSS, мы любим делиться своими усердными усилиями, чтобы найти это отличное решение. Вот ссылки в качестве примера:


2

Вы не можете сделать запрос на извлечение, но вы можете открыть проблему, вставить ссылку на свою вики-страницу и позволить им слиться с вашей вики-страницей на их вики-страницу.

Коротко:

Им просто нужно клонировать ваше репозиторий на вики-странице, ( git clone YOUR_FORKED_REPO.wiki.git), раздавить все ваши вики-коммиты в один большой коммит, а затем выбрать этот большой сдавленный коммит в свой репо. Это внесет все ваши изменения в вики в их вики.

Полные инструкции:

(СОЗДАНО с сайта Github Ларри Боты ЗДЕСЬ: https://gist.github.com/larrybotha/10650410 ):

---------- НАЧАЛО КОПИРОВАНИЯ ИЗ ВЫШЕГО GISTUB GIST ------------

Слияние изменений вики из репо Github

Это вдохновлено (или в основном скопировано) из романа Иванова « Как объединить изменения в Github Wiki из одного репозитория в другое », и служит для того, чтобы в случае, если что-то случится с оригинальной статьей, информация здесь остается приятной и безопасной.

терминология

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

---------- КОНЕЦ КОПИРОВАНИЯ ИЗ ВЫШЕГО GISTUB GIST ------------


0

Если у вас все в порядке, если у вас есть одностраничный документ (на самом деле он мне нравится больше), вы можете взломать README.MDи поместить туда содержимое вики.

Он не только будет отслеживаться как часть обычного хранилища, но также будет отображаться на домашней странице.

Можно начать с краткого справочника, а затем перейти к более подробному описанию / инструкциям, чтобы обычные пользователи сначала получили более общую информацию.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.