Как я могу переписать нашу историю фиксации, чтобы гарантировать, что определенные ключевые слова никогда не появятся?Найти/Заменить в Git Commit Log
фона: у нас есть три уровня репозиториев:
- Местных - наша среды разработки.
- Внутренняя - нашей команды частный GH хранилище
- Client - Производство/конечный клиент. Все наши настоящие имена, электронные письма и т. Д. Никогда не должны быть здесь.
я уже нашел, что git-filter-branch
может помочь переписать историю, чтобы вырезать имена, используя что-то вроде этого ...
git filter-branch -f --env-filter "GIT_AUTHOR_NAME='safeusername'; GIT_AUTHOR_EMAIL='[email protected]'; GIT_COMMITTER_NAME='safeusername'; GIT_COMMITTER_EMAIL='[email protected]';" HEAD
Это, как представляется, отлично работает. Когда я нажимаю на конечный пульт, ни одно из наших имен не присутствует. Однако при некоторых слияниях я не хочу, чтобы какие-либо имена филиалов или другие комментарии потенциально выходили из аварии.
Кроме того, я хочу, чтобы наши фактические адреса электронной почты и имена пользователей продолжали настраиваться, поэтому наша внутренняя система управления проектами работает и прозрачна.
Как я могу обеспечить, чтобы список ключевых слов или имен никогда не отображался в фиксации сообщений? Кроме того, любые другие подходы к решению этой проблемы?
Спасибо!
Yikes. Просьба взаимодействовать между репозиториями, где настоящие имена/электронные письма * не могут быть присутствующими, а репозитории, в которых они должны присутствовать, должны ... быть рискованными, если не сказать больше. – Cascabel
К счастью, я держу их в отдельных каталогах и комбинирую любые фильтры, которые я могу использовать в сценарии push. Кроме того, это один из способов. Я никогда не буду извлекать код из клиентских репозиториев - когда-либо. Надеюсь, это упростит (или менее страшно). –
Только вид: вы по-прежнему перемещаете данные в направлении, которое, возможно, утечки информации. Вам действительно нужен * репозиторий * на стороне клиента, со всеми (возможно, переписанными) обязательствами, которые вы совершили в своих внутренних репозиториях? – Cascabel