Git вытащить, но не нажать файл
Я не мог найти ничего конкретного, но если бы я пропустил его, пожалуйста, дайте мне знать.
У меня есть файл в git, который должен быть там. После вытаскивания каждому человеку нужно будет отредактировать его, чтобы добавить к нему свои собственные учетные данные. При редактировании человеком я не хочу, чтобы он отображался как измененный или что-то еще, потому что мы хотим сохранить общий файл без учетных данных в нашем репо. Есть ли способ установить файл как "Вытянуть этот файл, но не нажимать его"?
В настоящее время у нас есть файл с именем Upload.bat_COPY_EDIT_RENAME, который, надеюсь, делает очевидным, что делать, и у меня есть Upload.bat в .gitignore. Я бы хотел кое-что еще идиотизировать.
Я знаю, что есть такие параметры, как -assume-unchanged, но я не хочу запускать их каждый раз, и это похоже на исправление бандайды, которое может потенциально вызвать проблемы позже.
Спасибо за вашу помощь!
Ответы
Ответ 1
Я бы предложил несколько иной подход... Вы можете написать свой Upload.bat
для чтения из файла настроек, используя ваш формат выбора. Скажите, что вы это называете, secrets.txt
. Затем вы можете добавить secrets.txt
в свой .gitignore
и зафиксировать Upload.bat
безнаказанно. Когда пользователи вытаскивают репо, они получат Upload.bat
и могут создавать свои собственные secrets.txt
.
Вы можете сделать secrets.txt
только имя пользователя и пароль, разделенные символом новой строки. Должно быть тривиально разбираться таким образом.
Ответ 2
Если каждый человек переименует файл, вы можете добавить Upload.bat * в свой .gitignore файл, а затем git не должен отслеживать новые файлы с помощью этой схемы именования. Дополнительная информация о gitignore
Ответ 3
Насколько мне известно, git не имеет постоянной настройки для вытягивания, но никогда не нажимайте файл.
Вы можете получить более надежное обходное решение, сохранив файл шаблона в git (как вы уже это сделали), и имея свою сборку script (вы у вас есть один, не так ли?) проверьте настроенный файл. Если пользовательский файл существует, отлично, продолжайте работу с сборкой. Если он не существует, предложите разработчику свои учетные данные и настройте его. Затем продолжайте строить. Индивидуальная версия файла, конечно, находится в .gitignore.
Это, по сути, то, что у вас есть сейчас, но с добавлением сборки script, служащей напоминанием разработчику, вместо того, чтобы полагаться на забывчивого, забывающего человека, чтобы надеяться заметить и понять смешно названный файл где-то в их файле система.
В качестве дополнительного преимущества, заключающегося в том, что script обрабатывает создание настраиваемого файла, он может автоматически обновить его автоматически, если шаблон изменится.
В зависимости от учетных данных вы можете дважды проверить, чтобы убедиться, что они не записываются ни в какие журналы при запуске сборки script. Сюда входит передача вывода в файл.
Ответ 4
Один подход, который не требует добавления Upload.bat
к вашему gitignore, заключается в использовании пакетного файла.
Вы можете добавить файл с именем credentials.txt.dist
в репозиторий со следующим содержимым:
username=username_here
password=password_here
И затем в вашем пакетном файле:
for /f "delims=" %%x in (credentials.txt) do (set "%%x")
Бесстыдно взято из Пакетный файл включает внешний файл для переменных
И не тестировалось:)
Пакет script должен, вероятно, выполнить некоторую проверку ошибок. По крайней мере, он должен генерировать описательное сообщение об ошибке, если credentials.txt
не было предоставлено.