2015-08-03 4 views
2

В репозитории git, скажем, у меня есть файл в моей главной ветви, config.json, который содержит некоторую информацию о, например. моя среда размещения.«Привязка» конкретной версии файла в ветке git

master 
- config.json 

Ради аргумента, давайте предположим, этот файл считывается мой Глоток-файл и содержит информацию о том, чтобы свести к минимуму мои JavaScripts или включать карты источников.

В моей ветви разработки, я хочу этот файл будет отличаться

development 
- config.json 

Так что всякий раз, когда я бег глотки на моей главной ветви, мои JavaScripts сведены к минимуму, в то время, когда я бег глотки на моей ветке развития, я включают исходные карты для моего скомпилированного машинописного текста.

Есть ли способ гарантировать, что config.json не будет слит с развитием, чтобы справиться с ошибкой, и наоборот?

Несколько поколений управления версиями назад, в Visual Source Safe, это может быть достигнуто за счет «прижав» определенные файлы к конкретной «ветви»

Является ли это (или что-то эквивалент) можно с мерзавцем?

ответ

0

git берет моментальные снимки вашего проекта и делает это «пиннинг» - это не хорошая политика.

Есть несколько решений, которые вы хотите делать.

ОТДЕЛЕНИЕ

Используя 3 ветви.

  • Официальная магистральная ветка.
  • Официальная ветвь развития.
  • работает филиал

Вы работаете в рабочей ветви. Он может быть временным, и имя может быть номером отслеживания вашей «Системы отслеживания ошибок/требований».

После окончания вы слились в свою официальную ветку развития. Измените конкретные файлы для правильной работы. Подтвердите свои тесты, чтобы они работали.

Вернитесь в рабочую ветку и смените изменение в официальной ветви мастера.

СИМВОЛИЧЕСКОЕ LINK

Если вы находитесь в машине Unix/Linux. У вас могут быть два файла конфигурации. Один для мастер-филиала, а другой для развития отрасли.

Затем вы создаете символическое указание в каждой ветви соответствующего файла. Затем вы можете равномерно изменять каждый файл, не опасаясь влиять на изменения в другой ветке.

+0

Спасибо за ответ, к сожалению, он не решает мою проблему. Даже если это не хорошая политика (объяснение того, почему это не хорошая политика, было бы оценено) Мне все еще интересно узнать, действительно ли это возможно (используя функциональность git, а не внешние параметры, такие как символические ссылки) – havardhu

+0

Причиной плохой политики является то, что если вы хотите вернуться к предыдущему рисунку/изображению/stateOfYourProject, это было бы невозможно, потому что вы не знаете изменений, которые этот файл имел. Мне жаль, что я не мог вам помочь. – blashser

0

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

git rm yourFile 

И после этого, вы можете добавить его в свой файл .gitignore, чтобы не видеть его, когда вы делаете git status или подобные команды.

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

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