Hi @Richdevs,
As mentioned in the docs, your contracts can use the initializer modifier to prevent its initializer function from being invoked twice.
Whereas onlyInitializing protects an initialization function (e.g. a function that helps to initialize a parent library) so that it can only be invoked by functions with the initializer modifier, directly or indirectly.