diff --git client/review/vcs/git.inc client/review/vcs/git.inc
new file mode 100644
--- /dev/null
+++ client/review/vcs/git.inc
@@ -0,0 +1,46 @@
+<?php
+// $Id: git.inc,v 1.5 2010/11/16 20:23:07 boombatower Exp $
+
+/**
+ * @file
+ * Git implementation of review interface.
+ *
+ * @author Jimmy Berry ("boombatower", http://drupal.org/user/214218)
+ */
+
+/**
+ * Git implementation of VCS interface.
+ */
+class pifr_client_vcs_git extends pifr_client_vcs {
+
+  public function checkout($directory, $url, $branch) {
+    $url = escapeshellarg($url);
+    $branch = escapeshellarg($branch);
+    $directory = escapeshellarg($directory);
+    return pifr_client_review::exec("git clone -b $branch $url $directory");
+  }
+
+  public function annotate($file) {
+    $lines = pifr_client_review::exec_output("git annotate $file");
+
+    $map = array();
+    $number = 1;
+    foreach ($lines as $line) {
+      if (preg_match('/.*?\s+\(\s+(.*?)\s+.*?\)/', $line, $match)) {
+        $map[$number++] = $match[1];
+      }
+    }
+    return $map;
+  }
+
+  public function commit_id() {
+    $lines = pifr_client_review::exec_output('git log -n 1');
+
+    foreach ($lines as $line) {
+      if (preg_match('/^commit (.*?)$/m', $line, $match)) {
+        return $match[1];
+      }
+    }
+    return FALSE;
+  }
+}
