Я не понимаю, как ведётся совместная разработка на больших проектах.
Например, есть ядро линукса. Над ним работают тысячи, если не десятки тысяч человек. И все они вносят различные изменения. Какие-то исправления, улучшения, новые возможности. Допустим, кто-нибудь разработал крутой OOM. Но код писал он на определённой версии ядра, уже устаревшей к моменту окончания разработки. Как ему внести эти изменения в актуальную версию ядра? Кто-то вручную должен адаптировать его код?
Ну и посоветуйте книги/гайды по гиту. Эта вундервафля слишком сложная.