Я пытаюсь иметь тот же конфигурационный файл в двух разных ветвях. Я хочу иметь файл в ветке разработки под контролем ревизии и на производственной ветке из контроля ревизии. Поэтому я стараюсь, что здесь предлагается.git различные файлы конфигурации между ветвями
http://cogniton-mind.tumblr.com/post/63560840467/howto-gitignore-for-different-branches-update
У меня есть файл конфигурации/config.php GIT гт, а затем добавили ее в моем .gitignore добавить и фиксации и нажать на продукцию отрасли. Я положил копию файла обратно в исходное место и на мой статус git. Я вижу, как и ожидалось, что ничего не нужно совершать. Я проверяю свою ветку разработки и вношу некоторые изменения в этот файл. Добавьте, зафиксируйте и нажмите, чтобы развиваться. Я заказываю производство Затем я пытаюсь объединить разработку и производство, и я получаю следующее.
CONFLICT (modify/delete): config/config.php deleted in HEAD and modified in develop. Version develop of config/config.php left in tree.
Следует ли избегать этого и иметь файл в разработке под контролем ревизии и при производстве не в контроле версий?
Я думаю, что это неправильный рабочий процесс, к сожалению. Git использует одну папку проекта, в которую входит .git-папка для всей своей работы. Если вы производите файл в одной ветке, то при проверке этой ветви обязательно переписывать файл с версией. Когда вы проверяете другую ветку, где файл не должен быть версией, git не имеет возможности заменить версию с не-версией, потому что хранить ее не удалось. Все, что он знает, это то, что в другой ветке этот файл не существует, поэтому он удаляет его, когда вы туда попадете. –
Положу это по-другому. Когда вы проверяете ветку, где файл имеет версию, он должен перезаписать любую существующую версию этого файла с версией, но git не захочет, потому что это разрушительно. Если вы все равно находитесь в этой ветке, и вы проверяете ту, где она не версируется, что делать? Должен ли он просто оставить файл там?Это означало бы, что, когда вы прыгаете из других ветвей назад к этому, независимо от того, какое бы состояние оно ни было в ветке, которую вы только что оставили, будет то, что осталось на вашем дереве, когда вы добрались до ветки, где ее не следует проверять. –
Итак, я думаю, лучший подход состоял бы в том, чтобы иметь конфигурационный файл вне контроля версий, верно? –