I read about cherry-picking. It says: You have one branch x1 and branch x2. You want to take one commit from many commits of x2 and want to merge it with x1. You have 4-5 commits in x1 and now you take one commit or range of them and want to merge it with x2. It is cherry-picking. We can do using:

git cherry-pick ID

Is this correct what I got about cherry-picking?

Secondly, It says: you have some consequences when you cherry-pick the commits.

This changing of commit IDs breaks git's merging functionality among other things (though if used sparingly there are heuristics that will paper over this). More importantly though, it ignores functional dependencies - if C actually used a function defined in B, you'll never know.

I didn't get this thing about the effects of cherry-picking. Can anyone explain this? Any help would be aprreciated. Thanks.