Gclient: Don't check if repository is clean if --force is passed in

Instead just do a git checkout --force, since there are some states that reset cannot fix.

BUG=606420

Review URL: https://codereview.chromium.org/1916973002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300176 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient_scm.py b/gclient_scm.py
index 9a6f512..79fb6ea 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -553,7 +553,9 @@
 
     if current_type == 'detached':
       # case 0
-      self._CheckClean(rev_str)
+      if not options.force:
+        # Don't do this check if nuclear option is on.
+        self._CheckClean(rev_str)
       self._CheckDetachedHead(rev_str, options)
       if self._Capture(['rev-list', '-n', '1', 'HEAD']) == revision:
         self.Print('Up-to-date; skipping checkout.')
@@ -563,7 +565,7 @@
         self._Checkout(
             options,
             revision,
-            force=(options.force and options.delete_unversioned_trees),
+            force=(options.force or options.delete_unversioned_trees),
             quiet=True,
         )
       if not printed_path: