Как удалить файл из Gist?

Я случайно добавил файл в один из Gists, но не знаю, как его удалить. Как это сделать? (То есть, как удалить файл из Gist, не удаляя при этом весь Gist?)

Когда я редактирую и нажимаю (x) слева от имени файла, исчезают и имя файла, и его содержимое, но не редактор. И когда я хочу сохранить его (Update Gist), возникает ошибка «Файлы не могут быть пустыми».


person Piotr Migdal    schedule 27.04.2013    source источник
comment
Итак, как я понимаю из ответов ниже, графического интерфейса нет, но я могу рассматривать их как обычные репозитории Git и отправлять версию с удаленным файлом.   -  person Piotr Migdal    schedule 27.04.2013


Ответы (4)


Это сработало для меня в пользовательском интерфейсе:

  • обновить суть
  • удалить содержимое
  • удалить имя файла
  • нажмите на синий крестик там, где было имя файла

Форма для файла должна исчезнуть.

После этого сохраните суть.

person Sebastian N.    schedule 09.09.2013

Я не нашел способ через графический интерфейс.

Однако помните, что вы можете клонировать Gist, удалить файл и отправить новую версию этого Gist обратно на GitHub с удаленным файлом.

P:\git\test>git clone https://gist.github.com/efd7e7774d9526484456.git
Cloning into 'efd7e7774d9526484456'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.

P:\git\test>cd efd7e7774d9526484456

P:\git\test\efd7e7774d9526484456>dir
 Volume in drive P has no label.
 Volume Serial Number is D866-48E1

 Directory of P:\git\test\efd7e7774d9526484456

27/04/2013  16:52    <DIR>          .
27/04/2013  16:52    <DIR>          ..
27/04/2013  16:52                 5 f1
27/04/2013  16:52                 5 f2
               2 File(s)             10 bytes
               2 Dir(s)  43 554 910 208 bytes free

P:\git\test\efd7e7774d9526484456>git rm f2
rm 'f2'

P:\git\test\efd7e7774d9526484456>dir
 Volume in drive P has no label.
 Volume Serial Number is D866-48E1

 Directory of P:\git\days\efd7e7774d9526484456

27/04/2013  16:52    <DIR>          .
27/04/2013  16:52    <DIR>          ..
27/04/2013  16:52                 5 f1
               1 File(s)              5 bytes
               2 Dir(s)  43 555 000 320 bytes free

P:\git\test\efd7e7774d9526484456>git st
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    f2
#

P:\git\test\efd7e7774d9526484456>git commit -m "remove f2"
[master d5a76f4] remove f2
 1 file changed, 1 deletion(-)
 delete mode 100644 f2

P:\git\test\efd7e7774d9526484456>git push

Username for 'https://gist.github.com': VonC
Password for 'https://[email protected]':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 218 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To https://gist.github.com/efd7e7774d9526484456.git
   b93ce40..d5a76f4  master -> master

Если вы не хотите, чтобы этот файл был в истории (журнале) вашей сущности, вы можете reset --hard:

P:\git\test\days\efd7e7774d9526484456>git lg
* d5a76f4 - (HEAD, origin/master, origin/HEAD, master) remove f2 (3 minutes ago) <VonC>
* b93ce40 -  (7 minutes ago) <VonC>
* d7d8b19 -  (8 minutes ago) <VonC>
* 5eae4d3 -  (8 minutes ago) <VonC>

P:\git\test\efd7e7774d9526484456>git reset --hard d7d8b19
HEAD is now at d7d8b19

P:\git\test\efd7e7774d9526484456>dir
 Volume in drive P has no label.
 Volume Serial Number is D866-48E1

 Directory of P:\git\test\days\efd7e7774d9526484456

27/04/2013  16:52    <DIR>          .
27/04/2013  16:52    <DIR>          ..
27/04/2013  16:52                 5 f1
               1 File(s)              5 bytes
               2 Dir(s)  43 554 832 384 bytes free

P:\git\test\efd7e7774d9526484456>git push --force

Username for 'https://gist.github.com': VonC
Password for 'https://[email protected]':
Total 0 (delta 0), reused 0 (delta 0)
To https://gist.github.com/efd7e7774d9526484456.git
 + d5a76f4...d7d8b19 master -> master (forced update)
person VonC    schedule 27.04.2013

Gist — это репозиторий git, поэтому вы можете клонировать этот gist на свой компьютер, обрезать этот файл и принудительно отправить репозиторий gist обратно на GitHub.

Вы найдете свой URL-адрес клона слева от сути.

git clone https://gist.github.com/1234567.git
cd 1234567
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch wrong_file' --prune-empty --tag-name-filter cat -- --all
git push origin master --force

Таким образом, все, включая вашу историю, очищается (в этом примере файл называется неправильным_файлом).

person three    schedule 27.04.2013
comment
Я знаю, что прошло 3 года, но СПАСИБО, это первый раз в истории, когда я боюсь делать что-то в git, начинаю гуглить в поисках решения и исправлю его за 2 минуты вместо 10 часов и 500 кликов по страницам! - person DeanAttali; 29.07.2016

Завиток

Использование токена аутентификации (OAuth ):

curl -H "Authorization: token OAUTH-TOKEN" -XDELETE https://api.github.com/gists/G1ST1D

Использование учетных данных:

curl -u user:pass -XDELETE https://api.github.com/gists/G1ST1D

Подробнее см.:

person kenorb    schedule 11.09.2019