这三种形式都可以。
get 是一个动态动词,所以用一般现在时的话表明 , 说话人认为"他懂了"是基本上在说话的同时发生。
用一般过去时表示说话人,认为这个动作是刚才发生的。现在完成类似。
如果别人刚给你讲了一个道理,你说你明白了。这种情况应该用 I get it, I got it, I have got it.,实际上是主观的判断,没有客观的强制标准。可以通用。
提问的时候do you get it和did you get it也可以互换。回答的时候可以交叉,比如一般过去时提问did you get it也可以回答,I get it,或者是I got it。