I agree with Linus. C++ is too complex and overengineered, and taking in contributions in it for something like git, is a recipe for disaster.
However, C in all its simplicity already has its potential for abuse. Macros can go very bad. Very bad. (Just look at openSSL).
It is also not difficult to abuse the left-right rule in pointer arithmetic: *x->a->c=5. It can easily become incomprehensible.
We did not need C++. We needed a way to further simplify C.