Отдельные файлы gitignore для Heroku и GitHub? - PullRequest
2 голосов
/ 15 июня 2019

У меня есть один файл, который необходим для моего приложения heroku, но который я не хочу в моем репозитории GitHub.

Есть ли способ получить .gitignore, который используется только при нажатии на GitHub?

Кроме того, есть ли другой способ, которым я могу избежать отправки этого файла в GitHub?

Ответы [ 2 ]

1 голос
/ 15 июня 2019

Ответ VonC хорош, но вот немного больше информации.

Есть ли способ получить .gitignore, который используется только при отправке на GitHub?

.gitignore никогда не вступает в игру с git push:

  • git push работает на commitits , поэтому, если вы хотите, чтобы файл был включен в вашу сборку Heroku, он должен быть зафиксирован
  • Система игнорирования Git только предотвращает отслеживание файлов; не влияет на отслеживаемые файлы

Теоретически вы можете поддерживать долгосрочную ветвь heroku, которая обновляется до master (или какова бы ни была ваша основная ветвь), но также содержит файл только для Heroku, но, по моему мнению, нет причин для перехода через эти обручи. Просто включите ваш Procfile или что-то еще в вашем основном хранилище. Какой вред это делает?

Обратите внимание, что если у вас возникла ситуация , противоположная , где вы хотели бы пропустить некоторые отслеживаемые файлы в Heroku , вы можете использовать .slugignore file :

Если в вашем хранилище содержатся файлы, необязательные для запуска вашего приложения, вы можете добавить их в файл .slugignore в корне вашего хранилища. Примеры файлов, которые вы можете исключить из слага:

  • Художественные источники (например, файлы .psd)
  • Проектная документация (например, файлы .pdf)
  • Данные испытаний

...

Файл .slugignore приводит к удалению файлов после отправки кода в Heroku и до запуска buildpack .

1 голос
/ 15 июня 2019

Если вы уже отследили этот файл, удаление его (и даже игнорирование его в .gitignore) перед отправкой в ​​GitHub не удалит его из истории этого загруженного репозитория.

Это означает, что важно знать , почему вам не нужен этот файл на GitHub.

Если это по соображениям безопасности, поскольку оно включает в себя конфиденциальную информацию, у вас может быть:

  • больше работы
  • для вывода этого файла за пределы локального репозитория, чтобы быть уверенным, что он не будет включен.

В общем, нет, нет условного / отдельного .gitignore для двух разных удаленных репозиториев.

В вашем случае вам может потребоваться сценарий операции git push, чтобы играть с , как здесь , чтобы играть с git update-index --(no-)assume-unchanged <file>.

...