Ответ 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'