diff --git a/.gitignore b/.gitignore
index d35cddebd..1773f8747 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@ nbproject
 .DS_Store
 /*egg-info
 /.tox
+.idea
diff --git a/git/compat.py b/git/compat.py
index b80458576..b63768f3d 100644
--- a/git/compat.py
+++ b/git/compat.py
@@ -309,5 +309,5 @@ def register_surrogateescape():
 
 try:
     b"100644 \x9f\0aaa".decode(defenc, "surrogateescape")
-except:
+except Exception:
     register_surrogateescape()
diff --git a/git/diff.py b/git/diff.py
index 16c782f3a..103281a13 100644
--- a/git/diff.py
+++ b/git/diff.py
@@ -313,16 +313,16 @@ def __str__(self):
             h %= self.b_blob.path
 
         msg = ''
-        l = None    # temp line
+        temp_line = None
         ll = 0      # line length
         for b, n in zip((self.a_blob, self.b_blob), ('lhs', 'rhs')):
             if b:
-                l = "\n%s: %o | %s" % (n, b.mode, b.hexsha)
+                temp_line = "\n%s: %o | %s" % (n, b.mode, b.hexsha)
             else:
-                l = "\n%s: None" % n
+                temp_line = "\n%s: None" % n
             # END if blob is not None
-            ll = max(len(l), ll)
-            msg += l
+            ll = max(len(temp_line), ll)
+            msg += temp_line
         # END for each blob
 
         # add headline
diff --git a/git/exc.py b/git/exc.py
index a737110c8..0dc4ad563 100644
--- a/git/exc.py
+++ b/git/exc.py
@@ -48,7 +48,7 @@ def __init__(self, command, status=None, stderr=None, stdout=None):
             else:
                 try:
                     status = u'exit code(%s)' % int(status)
-                except:
+                except Exception:
                     s = safe_decode(str(status))
                     status = u"'%s'" % s if isinstance(status, string_types) else s
 
diff --git a/git/refs/log.py b/git/refs/log.py
index 623a63db1..1c085ef18 100644
--- a/git/refs/log.py
+++ b/git/refs/log.py
@@ -246,7 +246,7 @@ def to_file(self, filepath):
         try:
             self._serialize(fp)
             lfd.commit()
-        except:
+        except Exception:
             # on failure it rolls back automatically, but we make it clear
             lfd.rollback()
             raise
diff --git a/git/remote.py b/git/remote.py
index 35460f5a8..5d876eb32 100644
--- a/git/remote.py
+++ b/git/remote.py
@@ -542,9 +542,11 @@ def urls(self):
                         if '  Push  URL:' in line:
                             yield line.split(': ')[-1]
                 except GitCommandError as ex:
-                    if any([msg in str(ex) for msg in ['correct access rights','cannot run ssh']]):
-                        # If ssh is not setup to access this repository, see issue 694                                                                                            
-                        result = Git().execute(['git','config','--get','remote.%s.url' % self.name])
+                    if any([msg in str(ex) for msg in ['correct access rights',
+                                                       'cannot run ssh']]):
+                        # If ssh is not setup to access this repository, see issue 694
+                        result = Git().execute(['git', 'config', '--get',
+                                                'remote.%s.url' % self.name])
                         yield result
                     else:
                         raise ex
diff --git a/git/repo/base.py b/git/repo/base.py
index 990def64c..2fbae0122 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -203,7 +203,7 @@ def __exit__(self, exc_type, exc_value, traceback):
     def __del__(self):
         try:
             self.close()
-        except:
+        except Exception:
             pass
 
     def close(self):
diff --git a/git/test/lib/helper.py b/git/test/lib/helper.py
index 729c76a4f..27e053d81 100644
--- a/git/test/lib/helper.py
+++ b/git/test/lib/helper.py
@@ -139,7 +139,7 @@ def repo_creator(self):
             try:
                 try:
                     return func(self, rw_repo)
-                except:
+                except Exception:
                     log.info("Keeping repo after failure: %s", repo_dir)
                     repo_dir = None
                     raise
@@ -296,7 +296,7 @@ def remote_repo_creator(self):
                     with cwd(rw_repo.working_dir):
                         try:
                             return func(self, rw_repo, rw_daemon_repo)
-                        except:
+                        except Exception:
                             log.info("Keeping repos after failure: \n  rw_repo_dir: %s \n  rw_daemon_repo_dir: %s",
                                      rw_repo_dir, rw_daemon_repo_dir)
                             rw_repo_dir = rw_daemon_repo_dir = None
diff --git a/git/test/test_commit.py b/git/test/test_commit.py
index fbb1c244e..e6bda6eb5 100644
--- a/git/test/test_commit.py
+++ b/git/test/test_commit.py
@@ -169,8 +169,8 @@ def test_traversal(self):
         # at some point, both iterations should stop
         self.assertEqual(list(bfirst)[-1], first)
         stoptraverse = self.rorepo.commit("254d04aa3180eb8b8daf7b7ff25f010cd69b4e7d").traverse(as_edge=True)
-        l = list(stoptraverse)
-        self.assertEqual(len(l[0]), 2)
+        traverse_list = list(stoptraverse)
+        self.assertEqual(len(traverse_list[0]), 2)
 
         # ignore self
         self.assertEqual(next(start.traverse(ignore_self=False)), start)
diff --git a/git/test/test_submodule.py b/git/test/test_submodule.py
index f970dd2c0..5c8a2798a 100644
--- a/git/test/test_submodule.py
+++ b/git/test/test_submodule.py
@@ -920,4 +920,4 @@ class Repo(object):
         submodule_path = 'D:\\submodule_path'
         relative_path = Submodule._to_relative_path(super_repo, submodule_path)
         msg = '_to_relative_path should be "submodule_path" but was "%s"' % relative_path
-        assert relative_path == 'submodule_path', msg
\ No newline at end of file
+        assert relative_path == 'submodule_path', msg
diff --git a/git/test/test_util.py b/git/test/test_util.py
index 525c86092..2126c5413 100644
--- a/git/test/test_util.py
+++ b/git/test/test_util.py
@@ -217,49 +217,49 @@ def test_actor(self):
     @ddt.data(('name', ''), ('name', 'prefix_'))
     def test_iterable_list(self, case):
         name, prefix = case
-        l = IterableList(name, prefix)
+        iter_list = IterableList(name, prefix)
 
         name1 = "one"
         name2 = "two"
         m1 = TestIterableMember(prefix + name1)
         m2 = TestIterableMember(prefix + name2)
 
-        l.extend((m1, m2))
+        iter_list.extend((m1, m2))
 
-        self.assertEqual(len(l), 2)
+        self.assertEqual(len(iter_list), 2)
 
         # contains works with name and identity
-        self.assertIn(name1, l)
-        self.assertIn(name2, l)
-        self.assertIn(m2, l)
-        self.assertIn(m2, l)
-        self.assertNotIn('invalid', l)
+        self.assertIn(name1, iter_list)
+        self.assertIn(name2, iter_list)
+        self.assertIn(m2, iter_list)
+        self.assertIn(m2, iter_list)
+        self.assertNotIn('invalid', iter_list)
 
         # with string index
-        self.assertIs(l[name1], m1)
-        self.assertIs(l[name2], m2)
+        self.assertIs(iter_list[name1], m1)
+        self.assertIs(iter_list[name2], m2)
 
         # with int index
-        self.assertIs(l[0], m1)
-        self.assertIs(l[1], m2)
+        self.assertIs(iter_list[0], m1)
+        self.assertIs(iter_list[1], m2)
 
         # with getattr
-        self.assertIs(l.one, m1)
-        self.assertIs(l.two, m2)
+        self.assertIs(iter_list.one, m1)
+        self.assertIs(iter_list.two, m2)
 
         # test exceptions
-        self.failUnlessRaises(AttributeError, getattr, l, 'something')
-        self.failUnlessRaises(IndexError, l.__getitem__, 'something')
+        self.failUnlessRaises(AttributeError, getattr, iter_list, 'something')
+        self.failUnlessRaises(IndexError, iter_list.__getitem__, 'something')
 
         # delete by name and index
-        self.failUnlessRaises(IndexError, l.__delitem__, 'something')
-        del(l[name2])
-        self.assertEqual(len(l), 1)
-        self.assertNotIn(name2, l)
-        self.assertIn(name1, l)
-        del(l[0])
-        self.assertNotIn(name1, l)
-        self.assertEqual(len(l), 0)
-
-        self.failUnlessRaises(IndexError, l.__delitem__, 0)
-        self.failUnlessRaises(IndexError, l.__delitem__, 'something')
+        self.failUnlessRaises(IndexError, iter_list.__delitem__, 'something')
+        del(iter_list[name2])
+        self.assertEqual(len(iter_list), 1)
+        self.assertNotIn(name2, iter_list)
+        self.assertIn(name1, iter_list)
+        del(iter_list[0])
+        self.assertNotIn(name1, iter_list)
+        self.assertEqual(len(iter_list), 0)
+
+        self.failUnlessRaises(IndexError, iter_list.__delitem__, 0)
+        self.failUnlessRaises(IndexError, iter_list.__delitem__, 'something')
diff --git a/git/util.py b/git/util.py
index 5baeee918..96a1f163f 100644
--- a/git/util.py
+++ b/git/util.py
@@ -190,7 +190,7 @@ def assure_directory_exists(path, is_file=False):
 def _get_exe_extensions():
     try:
         winprog_exts = tuple(p.upper() for p in os.environ['PATHEXT'].split(os.pathsep))
-    except:
+    except Exception:
         winprog_exts = ('.BAT', 'COM', '.EXE')
 
     return winprog_exts
@@ -200,7 +200,7 @@ def py_where(program, path=None):
     # From: http://stackoverflow.com/a/377028/548792
     try:
         winprog_exts = tuple(p.upper() for p in os.environ['PATHEXT'].split(os.pathsep))
-    except:
+    except Exception:
         winprog_exts = is_win and ('.BAT', 'COM', '.EXE') or ()
 
     def is_exec(fpath):
@@ -347,7 +347,7 @@ def expand_path(p, expand_vars=True):
         if expand_vars:
             p = osp.expandvars(p)
         return osp.normpath(osp.abspath(p))
-    except:
+    except Exception:
         return None
 
 #} END utilities