Какие типы файлов следует зафиксировать, а какие игнорировать в репозитории Git?

Поэтому я хочу использовать как GitHub, так и Bitbucket в качестве репозиториев (в зависимости от того, хочу ли я, чтобы что-то было общедоступным, а не частным), и большая часть моей работы также включает работу с LaTeX (так что есть файлы .tex, .png и .pdf), а также тесты скорости (поэтому у меня могут быть файлы .csv и .Rdata).

Мне трудно определить, какие типы файлов должны попасть в мои репозитории, а какие должны быть связаны внутри README.mds.

Есть ли у кого-нибудь простая философия или жесткие правила, которыми они хотели бы поделиться?


person StevieP    schedule 11.01.2014    source источник
comment
Игнорировать сгенерированные файлы, большую часть времени.   -  person Matt Ball    schedule 11.01.2014
comment
игнорировать файлы конфигурации, которые содержат конфиденциальные данные, такие как учетные данные БД.   -  person awei    schedule 11.01.2014
comment
Согласен с Мэттом Боллом, но в том числе большую часть времени. Для редко изменяющихся сгенерированных файлов, для повторного создания которых требуются специальные инструменты, может быть целесообразнее сделать исключение.   -  person    schedule 11.01.2014
comment
@MattBall, означает ли это, например, игнорирование вывода .pdf файла .tex?   -  person StevieP    schedule 11.01.2014
comment
Кроме того, как насчет файла .csv, который полезен для оценки скорости вашего кода?   -  person StevieP    schedule 11.01.2014
comment
Голосование против и без комментариев? Настоящий отстой.   -  person StevieP    schedule 12.01.2014
comment
@StevieP: Бывает. Да, это раздражает, но вы обнаружите, что об этом не стоит беспокоиться.   -  person Keith Thompson    schedule 12.01.2014


Ответы (2)


Обычно игнорируйте двоичные файлы, особенно большие файлы. Git не выполняет отслеживание больших или двоичных файлов с апломбом, как это может делать SVN.

При необходимости можно сделать исключения для небольших файлов (например, PNG), если они не слишком сильно меняются.

person jonathan3692bf    schedule 11.01.2014
comment
Я новичок. Можете ли вы сказать мне, когда я узнаю, что что-то является двоичным файлом? Например, генерируются бинарные файлы .pdf? - person StevieP; 11.01.2014
comment
file -b -i file_name — это хорошая команда командной строки для Linux/Mac, которая должна возвращать MIME-тип вашего файла. источник: linux + идентифицирует двоичный файл Как правило, он сообщит вам, когда вы имеете дело с текстовый/ASCII-файл. Вы можете (почти) предположить, что все остальное является двоичным. - person jonathan3692bf; 12.01.2014

Обычно вы хотите, чтобы ваш репозиторий содержал только файлы, из которых все остальное может быть создано автоматически.

Например, если это программа на C, вам понадобятся файлы *.c и *.h, а также любые файлы Makefile, но не объектные файлы и исполняемые файлы. Идея состоит в том, что кто-то может клонировать ваш репозиторий, следовать вашим инструкциям по сборке и воссоздавать все необходимое для использования вашего проекта.

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

Это не жесткое правило. Иногда может быть удобно включать сгенерированные двоичные файлы. Например (предполагая приложение), если вы упаковываете устанавливаемое приложение, скажем, в файл .zip, .tgz или .msi, разумно предоставить его в репозитории (возможно, в отдельном каталоге). Если вы включаете нечто подобное, предназначенное для использования в качестве текущей версии приложения, убедитесь, что оно обновлено, прежде чем фиксировать и отправлять.

person Keith Thompson    schedule 11.01.2014