Не добавляйте в .gitignore проекта ваши локальные файлы, созданные операционной системой или текстовым редактором.
Вместо этого воспользуйтесь файлом с исключениями — это эдакий локальный .gitignore.
Создадим файл:
$ touch ~/.gitexcludes
Добавим в него файлы, которые не нужно коммитить:
$ echo "
.DS_store
.vscode/
.idea/
" >> ~/.gitexcludes
Укажем его в настройках git:
$ git config --global core.excludesfile ~/.gitexcludes
Используйте просто git commit, это тренирует писать более полные сообщения
Это замедляет работу с git, не поощряет делать небольшие коммиты. Пусть лучше тесты и линтер запускаются на CI сервере или хотя бы на prepush.
Так как ребейз переписывает историю, после ребейза код может неожиданно перестать работать, и будет сложно найти в чём проблема, так как история перетёрлась. Это актуально на больших проектах, когда ведётся много параллельной разработки.