При удалении ветки в Git / Github старый код все еще находится в репо? - PullRequest
2 голосов
/ 03 марта 2020

Мне интересно с точки зрения безопасности, есть ли у меня ветка в Git, которую я позже удаляю. В этой ветке, если у меня есть код, который произошел только в этой ветке, и в этой ветке у меня были коммиты, которые удалили его. Затем я удаляю эту ветку на GitHub. Является ли этот удаленный код каким-то образом все еще в GitHub Repo?

Мне кажется, что в Git нет истории, и нет способа вернуться к этой ветке, так как удален, но не уверен, что он действительно исчез.

Ответы [ 2 ]

2 голосов
/ 03 марта 2020

Ветвь - это просто указатель на коммит в репозитории. Когда вы удаляете ветку, он удаляет только этот указатель. Позже можно восстановить ветвь и коммиты, поэтому, если вам нужно полностью удалить определенные файлы или данные, вам нужно будет изменить историю коммитов.

Есть несколько способов сделать это, не потеряв полностью history.

BFG Repo-Cleaner

https://rtyley.github.io/bfg-repo-cleaner/

"BFG - более простая и быстрая альтернатива git -filter-branch для удаления неверных данных из истории Git хранилища:

Удаление сумасшедших больших файлов Удаление паролей, учетных данных и других личных данных Команда git -filter-branch чрезвычайно мощна и может делать то, что BFG не может - но BFG намного лучше для вышеуказанных задач, потому что:

Быстрее: в 10 - 720 раз быстрее. Проще: BFG не особенно умен, но сосредоточен на том, чтобы облегчить выполнение вышеуказанных задач. Beautiful: Если вам нужно, вы можете использовать прекрасный язык Scala для настройки BFG. Это должно быть лучше, чем Bash скриптинг, по крайней мере, в некоторых случаях. " - документация BFG

git -фильтр-ветвь

https://git-scm.com/docs/git-filter-branch

"Позволяет переписать Git историю изменений путем переписывания ветвей упоминается в , применяя пользовательские фильтры к каждой ревизии. Эти фильтры могут изменять каждое дерево (например, удалять файл или выполнять перезапись perl для всех файлов) или информацию о каждом коммите. В противном случае вся информация (включая исходное время фиксации или информацию о слиянии) будет сохранена. "- git документация

Политика удаления конфиденциальных данных Github

https://help.github.com/en/github/site-policy/github-sensitive-data-removal-policy

Я не думаю, что это действительно то, что вы ищете, но оно дает вам варианты на всякий случай.

"Мы предоставляем наш процесс удаления конфиденциальных данных, чтобы удалить эти конфиденциальные данные в определенных случаях. исключительные обстоятельства, при которых процесс DMCA неприменим, например, когда ваша безопасность подвергается риску от использования открытых паролей, и вы не обладаете авторскими правами на конкретный c контент, который вам нужно удалить, или контент не защищен авторским правом. "- документация GitHub

1 голос
/ 03 марта 2020

Насколько мне известно, github не удаляет вещи из своих репозиториев .... однако есть процесс, который вы можете go выполнить, чтобы попросить их удалить что-то вроде ветки, чтобы объекты были удалены.

https://help.github.com/en/github/site-policy/github-sensitive-data-removal-policy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...