At the very beginning there was the Indo-European root “keng”. It meant “crooked, crooked”. This gave rise to words such as ham and thighs, but also to give – at that time still meaning “to hold astray”.
A word sense was added in Old and Middle High German. Giving now meant something like “giving something to drink”. This is also visible in terms such as Schenke, pour out, cupbearer (court official who was responsible for the drinks at princely courts). Late Middle High German turned what was previously a paid gift into a “free giving”, a “presentation”. In this way the verb developed its current meaning “to give a gift”.