What's the difference between CollectDependencies and CompleteAssets?

After reading the reference about BuildAssetBundleOptions, I still cannot figure out what do they mean exactly. eg:
if I want to include the textures of a material, or include the materials of a model, or include the models of a prefab, which one should I use? Does BuidPipeline.PushDependencies affect CompleteAssets?

You should use CollectDependencies for the cases you describe. CompleteAssets allows you to include a whole object by referring to a single component attached to that object.

Does this mean CollectDependencies will NOT include that component? If an object references another object, what’s the behavior?