Prevent movement of hands on push up animation
Here's the simplest version of an arm rig:


upper arm, lower arm and hand are one connected chain
upper arm is parented to body with offset
hand has a Copy Rotation Constraint to hand target. Both bones have the same rotation. Using hand instead of hand target prevents the hand from getting torn apart when you accidentally move hand target too far away.
lower arm has an IK constraint to hand target, chain length 2. That means blender will rotate lower arm and upper arm to somehow reach hand target.
upper arm, lower arm and hand are deforming the character mesh while hand target is exclusively for animation.


If you want to animate the arm, move hand target. If you want to do pushups, move body. The arm takes care of itself.

Such rigs can become much more complex, and be it just to have control over the elbow. But the principle is usually similar.