Git отслеживает на уровне всего дерева, а не отдельных файлов и каталогов, поэтому у него нет такой концепции, как OID.
При объединении историй, которые содержат несовместимые изменения в файле (например, оба добавили новый файл с другим содержимым), Git создает конфликт слияния и останавливается, чтобы позволить пользователю разрешить конфликт или прервать слияние.
Конечно, Git не может заставить пользователя делать слияние правильно, но, возможно, сложнее полностью игнорировать одну из сторон конфликта. В Git конфликт будет в самом файле, а не в каталоге, в котором находится файл. Другими словами, конфликт будет из-за содержимого файла, вместо которого OID должен быть связан с каталогом. Конечно, в зависимости от используемого инструмента, пользователь все еще может просто нажать «принять мою сторону во всех конфликтах», но Git не будет заботиться ни в малейшей степени (хотя боссу и коллегам ленивого хама может быть очень важно!) *