I still find the behavior of git revert somewhat confusing. After significant pain and misunderstanding, I learnt that git revert negates a particular commit rather than reverting to that commit. I have not used git cherry-pick so far.
Can you elaborate on each of these two git commands? When and how do you prefer to use them?