We thought of implementing version controlling so we planned to use git tool,bit Bucket and eclipse. In eclipse using Git(Git Repository Exploring) we are able push/fetch the changes from remote repositories to local and vice versa but how to reflect these changes/versions in the salesforce org?
The Force.com IDE and many of the alternative tools include automatic (and/or manual) synchronization of what is in your local file system with an org (using the Metadata and Tooling APIs behind the scenes).
So there are two hops: from Git to your local file system and from your local file system to an org (and similarly in the reverse direction). This adds more potential for error and confusion but does work.
In addition the CI that mkorman describes can also be setup; this acts as an extra guard in that it can automatically deploy exactly what is in Git to an org and run all the tests, thereby ensuring that the code in Git is complete enough to deploy and has all its unit tests passing.
You can use some sort of Continous Integration (CI) system, together with the Force.com migration tool to reflect your changes in your Salesforce org.
Your CI server can detect changes in your source repository (Git master branch?), and automatically run a command-line script every time the repo changes. That script can invoke the migration tool to upload your code to your SF org.
The only issue with this approach is when you remove files from your source control (say, an Apex class that you no longer use). In that the Force.com migration tool may not remove it from your org, and you'll have to remove it manually. Hopefully, this kind of issues should not happen too often.