Pull to refresh

Comments 15

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

core.excludesfile: глобальный файл .gitignore - шикарно, не знал

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

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

При чем тут настройки проектов и приколы ОС в части например .DS_Store ?

при том, что git - это, чаще всего, про коллективную разработку. и если в проекте решено игнорировать, упомянутые вами .DS_Store, то они должны быть проигнорированы всеми участниками разработки.

чем проще онбординг в проект, тем легче работается.

а вот про онбординг и коллективную работу - убедили.

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

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

Но вот что касается файлов, которые создают конкретные OS/IDE/редактор/etc. - эти файлы специфичны для окружения (и его настройки!) конкретного разработчика, поэтому они во-первых должны исключаться не только из этого проекта а из всех, и во-вторых только этот разработчик знает своё окружение и какой именно мусор оно создаёт, поэтому исключать их нужно в глобальном ignore-конфиге этого разработчика. Попытаться засунуть все возможные варианты таких файлов для всех возможных OS/IDE/etc. в gitignore проекта, конечно, можно. Но это дурная идея: во-первых это раздувает gitignore, во-вторых это дублируется в каждом проекте, в-третьих всегда найдутся оригиналы с нестандартными OS/IDE либо их нестандартными настройками из-за которых мусора в и работы по поддержке всей этой толпы gitignore в каждом проекте станет ещё больше.

Например я люблю в директории проекта держать свою директорию со всяким для текущей работы. Назовем ее local. А никто кроме меня так не делает или называет иначе. Это мелочь, но на одну строку в .gitignore будет меньше. Плюс может все пользуются условным инструментом от JetBrains, а приходит кто-то в проект кто хочет использовать неовим с подгрузкой конфигов под проект. И конфиги держит в той же директории. Также такую экзотику можно не тащить в общий гитигнор.

Конфигурация git у меня, можно сказать, минимальная.

Нет, это у меня конфигурация минимальная:

[core]
	autocrlf = true
	excludesfile = D:\\dev\\gitignore_globals.txt
[user]
	name = delphinpro
	email = delphinpro@yandex.ru

Вот бы была опция `git push --force` запретить и навязать вместо него `git push --force-with-lease --force-if-includes`, да документация чуть более подробно это раскрывающая, для любителей ребейзить.

Кто попривык к JB, можно вместо meld использовать дифф от продуктов JB, но там есть беда с меняющимися при смене версий путями. Не знаю зачем JB так усложнили жизнь себе и пользователям в этом плане.

[diff]
    tool = vimdiff
    guitool = rider

[difftool "rider"]
    cmd = \"c:/Program Files/JetBrains/JetBrains Rider 2022.1/bin/rider64.exe\" diff \"$LOCAL\" \"$REMOTE\"

[merge]
    tool = vimdiff
    guitool = rider

[mergetool "rider"]
    cmd = \"c:/Program Files/JetBrains/JetBrains Rider 2022.1/bin/rider64.exe\" merge \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
    trustExitCode = true

Ну и кому хочется вообще лютых приключений - нынче можно коммиты подписывать SSH-ключом вместо GPG, а сам приватный SSH-ключ прогружать в агента, например, из KeePassXC по необходимости

Подписываю через ssh, а агент в 1password. Да и не особо там люто.

Насколько часто вы делаете форс-пуш в чужие бранчи или в мастер?

Я для мерджей использую beyondcompare.

Sign up to leave a comment.

Articles