Holt rejected a new deal with Hearts last season but they are set to receive compensation as the player came through their youth ranks.
The 22-year-old has been training with Rangers for several weeks.
Holt told Rangers' official website: "I think the style of play that is coming in is really exciting and if you asked anyone they would like to be a part of this. Throughout people's careers you come and go so I am just delighted to get this done and finally be here.
"It did hurt a wee bit leaving Tynecastle, I am a Hearts fan but it is part of football and now I am a Rangers player and my full focus is on this club. When the situation arose that I had an opportunity to come to Rangers I just jumped at it.
"I've been really impressed from the moment I came in the door, I spoke to a few of the boys and they were saying the same and as soon as I got a taste of it myself I just thought the same.
"I wanted to get something done straight away and thankfully it has transpired that way and the club is definitely going in the right direction."
CONFIRMED: Jason Holt has become Mark Warburton's seventh signing of the summer: http://t.co/uEgcefPrPMpic.twitter.com/FpaDF6CC5T
— Rangers FC (@RangersFC) July 22, 2015