This question has been answered before and therefore should likely be marked and closed as duplicate.
In short, it is viable, of course, for example we use Git to version control development of our sites. We control the versioning of the database somewhat differently in the form of incremental backups outside of the git workflow. Adopt a practice that best suits your case.
For the benefit of others wanting to know the same the following is a small compilation of community questions and answers surrounding the topic with some additional, external resources.
Here are some questions and answers worth reading:
- Getting Started with Subversion, Git, or similar Version Control System to keep a History of my Files?
- Versioning and your WordPress site?
- How do I add version control to my workflow?
- storing database in version control
- Version Control: Entire site or just pieces?
Elsewhere on the web:
- Deploy WordPress Websites using Git Melbourne WordCamp 2013 + misc tutorials
- This Is How We Version Control and Deploy Our WordPress Websites with Git Jan 2014
- Version Controlling WordPress Jan 2013
- Managing WordPress Theme Deployments with Git Jul 2012
By no means is this a comprehensive list.