Git игнорировать изменения - PullRequest
0 голосов
/ 17 мая 2011

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

Я слышал о git, что он основан на наборах изменений, а не на файлах.Могу ли я использовать git-svn, чтобы игнорировать некоторые изменения?

Ответы [ 3 ]

1 голос
/ 17 мая 2011

Если вы используете git-svn, вас могут заинтересовать опции create-ignore и show-ignore, которые создадут файл .gitignore, соответствующий существующим настройкам svn:ignore.

Если файлы, которые вы хотите игнорировать, носят чисто локальный характер и даже не известны svn:ignore, достаточно поместить их имена / шаблоны в .gitignore, чтобы они игнорировались git и git-svn (если вы не добавили их явно в индекс).

Если вы хотите игнорировать набор изменений (который отличается от игнорирования файла как части ваших коммитов git), вы должны поместить их в другую ветку, ту, которую вы не «dcommit» с помощью git-svn.

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

Это на самом деле не относится конкретно к git или svn.

Обычная практика в том случае, если вы работаете, это контроль версий шаблона этого файла (например, config.in) и игнорированиереальный файл конфигурации.При клонировании репозитория все, что вам нужно сделать, это скопировать шаблон, и реальный файл, который будет использоваться, игнорируется вашей системой контроля версий.

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

Мне сложно понять ваш вопрос, но я стараюсь:

Если вы добавляете файл в svn:ignore, он игнорируется SVN. Поэтому не должно быть необходимости делать резервные копии или восстанавливать их до / после коммита. Вы уверены, что не добавили эти файлы случайно? SVN игнорирует файлы в svn:ignore, но если вы сделаете svn add ignorefile.bak, файл будет добавлен в хранилище.

То же самое верно для мерзавца. Он также имеет файл игнорирования, но вы все равно можете принудительно добавить файл.

Тем не менее, в вашем проекте никогда не должно быть файлов, которые не были зафиксированы. Либо файл важен, то вам следует его зафиксировать. Если это нарушит работу других, передайте его под другим именем (например, arched.config вместо project.config). В противном случае другому пользователю будет очень сложно поддерживать программное обеспечение. Или для себя, если ваш компьютер внезапно умрет.

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

А с Git у вас даже есть другая опция: вы можете создать ветку, которая содержит файл так же, как и любой другой файл. Назовите эту ветку "архег-ворк". Теперь вы всегда можете работать над этой веткой и проект будет работать из коробки. Просто клонируйте его, и никаких дальнейших изменений не требуется.

Когда вы довольны своей работой, объедините изменения обратно в основную ветку. В отличие от SVN, ветвление действительно работает с Git. Линус Торвальдс объединяет тысячи филиалов каждый день без проблем.

...