Git: не игнорируемый файл в двух ветках должен быть разным - PullRequest
0 голосов
/ 10 мая 2011

Я хочу спросить о том, как выглядит ваш подход в такой ситуации: у меня есть этот файл настроек mongoid.yml, и у меня есть две ветви одного и того же проекта: master и dev. Я не помещал mongoid.yml в gitignore, потому что мне нужно, чтобы он был в коммите, когда я нажимаю обе ветви. Но всякий раз, когда я редактирую его в любой ветке, например, если я редактировал его в ветке dev, он отображается в состоянии git, когда я фиксирую, а затем объединяю dev с master, mongoid главной ветки теперь выглядит так же, как в dev. Мне нужно, чтобы они были другими. Как бы вы подошли к этому? спасибо!

Ответы [ 3 ]

0 голосов
/ 10 мая 2011

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

git merge -s ours dev

Это будет игнорировать то, что вы делали в ветке dev, но все равно пометит в истории, как будто эти изменения уже были объединены.С этого момента, когда вы сливаетесь с веткой dev и из нее, ваша конфигурация останется такой, какой вам нужна.Это правильный способ создать ветку разработки.

Надеюсь, это поможет.

0 голосов
/ 10 мая 2011

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

Создайте файл .gitattributes с:

mongoid.yml merge=ours

Затем, когда этот файл конфликтует во время слияния,старый будет сохранен.

Больше информации здесь и здесь .

0 голосов
/ 10 мая 2011

Вы можете сохранить свои изменения в файле в отдельном коммите всегда поверх мастера и объединить его родительский элемент.

Например:

  • вы работаете на dev,
  • если вам когда-либо придется изменить mongoid.yml, вы делаете коммиты только с измененным этим файлом,
  • прежде чем переключиться на master, вы git rebase -i master и переместите свои mongoid.yml коммиты вниз (и раздавите их всех первым, если их больше одного),
  • затем вы переключаетесь на master и объединяете родителя dev: git merge dev^

Это маленькая работа для каждого слияния, и вы теряете историю ваших изменений на mongoid.yml в ветке dev, но это должно работать.

...