The most important part is not overriding things you don't need to. You should be starting with blank files, and only adding the functions or variables you need overridden. Some functions can be hooked non-destructively, but you probably won't know or need to know how to do this at first, as long as you're only overriding the functions that you need changed, and not every other one in the file.
Read this post and those following it for instructions on how to change Abilities, Buffs, Items, and so forth in the best possible way. It's pretty simple to do once you understand how it works, and takes a lot less copy-pasted code - most changes can be done in one line, instead of re-doing an entire blueprint.
This means that if you just want to change Demon Assassin's Warp Strike damage, don't copy the entire HDemon_Abilities.lua file, create a blank one in your mod's hook folder with the same directory structure (as Peppe demonstrated above), and only add one line for each changed damage value that will look something like:
Code: c++
- Ability.HDemonWarpStrike01.DamageAmt = 300
This post covers unit blueprints, which for Demigods, can change things like their base speed, starting stats, and weapon rate of fire. Note that you don't have to create individual blueprint files for modding blueprints - just one mod_units.bp in your base mod directory can contain all of the unit blueprint changes, each changed unit consisting of a UnitBlueprint{} table with the BlueprintId value determining which unit it modifies.
You'll probably be mostly changing buffs and abilities however, since that's where Demigods get most of their capabilities from. The unit blueprint just determines starting values. This is not true with minions and creeps however, who get most of their capability from their unit blueprint (e.g. weapon damage, health, etc).
As for WHY you would want to do things like this, the most obvious reason is so your mod will play nicely with fix mods like the UberFix, so you can run both without either your mod being broken, or your mod breaking the UberFix. I don't think anyone else has made a non-destructive mod for Demigod, so I can't really cite any other examples; the Skirmish AI mod only changes files related to the AI, so it's pretty safe from this problem.
If you have any questions about the best way to do a specific thing, don't hesitate to ask.