2014-09-18 4 views
0

В моем текущем проекте есть файл свойств, который включает некоторые конфигурации проекта.Предотвращение обновления определенных локальных файлов в git

Для примера

server.jboss.home.dir=/home/user1/apps/apache-tomcat-7.0.54 

Мы должны изменить эти настройки в локально запустить программу.

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

Есть ли способ в git pull (или любая команда) для предотвращения обновления определенных локальных файлов?

+0

получил ответ от этой нити http://stackoverflow.com/questions/13674014/how-to-prevent-git-pull-from-overwriting-a-file –

+0

Возможные дубликата [Как предотвратить git pull от перезаписи файла?] (https://stackoverflow.com/questions/13674014/how-to-prevent-git-pull-from-overwriting-a-file) – pirho

ответ

3

Добавить его в gitignore.

gitignore - Specifies intentionally untracked files to ignore 

Создайте файл с именем .gitignore в корне проекта, или в том месте, где файл, который вы хотите быть проигнорировано проживает, и добавить относительный путь к этому файлу из .gitignore файл.

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

config.ini < ignored 
config.dist.ini < sample 

или

config.sample.ini < sample 

Альтернатива иметь глобальный конфигурационный файл, содержащий элементы, которые необходимы, но не относящиеся к настройке каждого разработчика и локальный конфигурационный файл, который необязательно может переопределить элементы из глобального. Например, глобальный может содержать номер версии для проекта, а локальный - пароль базы данных. Это потребует еще немного настройки кода приложения.

Вы также можете просмотреть этот вопрос: How to make Git "forget" about a file that was tracked but is now in .gitignore?

+0

Как я знаю, мы можем исключать только файлы из фиксирует использование файла «gitignore». Но мы не можем предотвратить обновление локальных файлов в git pull, используя «gitignore». Я ошибаюсь? –

+0

После того, как файл, который вы не хотите менять, удаляет репо, это не должно быть проблемой. – bcmcfc

+0

+1 для предоставления альтернативы для создания локального файла конфигурации –

0

За то, что это файл gitignore. Сделайте файл с кассой config.template например. Проверьте их, и когда люди клонируют проект, он может скопировать шаблон в свой собственный проект.

В файле .gitignore вы добавляете файл.

/your/path/yourfile

Затем файл не находится в хранилище.

http://git-scm.com/docs/gitignore

+0

Как я знаю, мы можем только исключать файлы из коммитов с использованием файла «gitignore». Но мы не можем предотвратить обновление локальных файлов в git pull, используя «gitignore». Я ошибаюсь? –

Смежные вопросы