Как конвертировать файлы в github repo в gistub

Мне хотелось бы сделать обратный этот вопрос. У меня есть папка в репозитории github, которая содержит визуализацию d3, которую я хотел бы продолжить вносить изменения. Было бы неплохо иметь "настоящую" версию этого репо, чтобы отобразить визуализацию на bl.ocks.org, что я мог бы подталкивать изменения к тому, когда из основного репо после того, как я им доволен.

Другой подобный вопрос здесь, но ответы описывают шаг gist → bl.ocks.org. Я не уверен в том, что вы делаете репозиторий githup. Каков наилучший способ сделать это?

Ответы

Ответ 1

Прежде всего, обратите внимание, что Gist не поддерживает каталоги. Чтобы импортировать репозиторий в gist, выполните следующие действия:

  • Создайте новый gist и клонируйте его локально (замените фиктивный id вашим идентификатором Gist):

    git clone [email protected]:792bxxxxxxxxxxxxxxx9.git
    
  • cd в каталог gist

  • Вытяните и слейте из своего репозитория GitHub:

    git pull [email protected]:<user>/<repo>.git
    
  • Нажмите свои изменения

    git push
    

Снова отметим, что если у вас есть каталоги, вы должны удалить и зафиксировать их:

rm -rf some-directory
git commit -m 'Removed some-directory' .

Используя приведенные выше шаги, история проекта будет сохранена. Если вам не нравится история, вы всегда можете выталкивать файлы в свой Gist. Скажем, у вас есть репозиторий, содержащий несколько папок, и вы хотите, чтобы каждая папка создавала Gist. Вы повторите следующие шаги (или script может это сделать):

git clone [email protected]:<gist-id>.git
cd <gist-id>
cp ../path/to/your/github/repository/and/some/folder/* .
git add .
git commit -m 'Added the Gist files' .
git push

Gist отличается от того, как работает GitHub:

Gist - это простой способ обмена фрагментами и пастами с другими. Все репозитории являются хранилищами Git, поэтому они автоматически версируются, становятся доступными и могут использоваться из Git.

Однако, если вы попытаетесь направить каталоги в Gists, вы получите ошибки с удаленного:

$ git push
Counting objects: 32, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (21/21), done.
Writing objects: 100% (32/32), 7.35 KiB | 0 bytes/s, done.
Total 32 (delta 10), reused 0 (delta 0)
remote: Gist does not support directories.
remote: These are the directories that are causing problems:
remote: foo
To [email protected]:792.....0b79.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:79.......9.git'