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

А вот если программу пишет один человек, а к нему иногда подключается второй?

И вот я этот самый второй. Собираю проект. "Файл не найден".

*пингвин кланяется*

Когда собираешь проект только у себя и иногда коммитишь, то можешь не знать, что твои коммиты нерабочие. У тебя-то всё работает. И будет работать. А что ты файл какой-нибудь добавить забыл -- это ерунда. Я сам так попадался неоднократно.

Можно быть сколько угодно раз внимательным, но иногда такое будет происходить.

А чтобы такого не было -- надо всегда собирать проект по крайней мере на ещё одной машине, стянув изменения из репозитория.