Это действительно зависит от того, является ли это вашим личным репо или репо, которым пользуются многие разработчики? Как далеко вы в проекте?
Лично я фиксирую свои репозитории subversion, когда я заканчиваю с одним аспектом, и все компилируется. Оно не должно быть полным, просто не сломанным. Я предпочитаю не оставлять вещи сломанными в первую очередь.
Наполовину написанный код может быть зарегистрирован, но только в моих личных ветках, как правило, с заметками о том, что я делал в то время и что еще нужно сделать. Поскольку я использую Subversion, и это мое личное репо, я использую его главным образом, чтобы иметь возможность покинуть свой рабочий стол и вернуться туда, где я остановился на своем ноутбуке.
Как правило, одна ошибка / проблема / функция на коммит хороша, но может не подходить вашему стилю разработки. Если это более законченный проект, он может сработать, поскольку коммиты означают, что вы где-то вычеркиваете элементы из списка, и это означает еще один элемент, который сейчас завершен.
Другие вопросы, на которые стоит обратить внимание, что важно в изменениях, которые оно требует проверки? Например, вчера вечером я зарегистрировался в коде, который значительно изменил внутренний API, это означало, что я должен был задокументировать изменения в сообщении фиксации, а также в документации. В то же время я также изменил несколько комментариев, чтобы исправить опечатки. Это приводит к небольшому примечанию к сообщению о коммите, но я не считаю, что это достаточно большая проблема, чтобы зафиксировать ее самостоятельно.