diff --git a/git-codereview/branch.go b/git-codereview/branch.go
index a16de5e..128a577 100644
--- a/git-codereview/branch.go
+++ b/git-codereview/branch.go
@@ -117,7 +117,7 @@
 	}
 
 	const numField = 5
-	all := getOutput("git", "log", "--format=format:%H%x00%h%x00%P%x00%s%x00%B%x00", b.OriginBranch()+".."+b.Name)
+	all := getOutput("git", "log", "--format=format:%H%x00%h%x00%P%x00%s%x00%B%x00", b.OriginBranch()+".."+b.Name, "--")
 	fields := strings.Split(all, "\x00")
 	if len(fields) < numField {
 		return // nothing pending
@@ -147,7 +147,7 @@
 		b.commitsAhead++
 	}
 	b.commitsAhead = len(fields) / numField
-	b.commitsBehind = len(getOutput("git", "log", "--format=format:x", b.Name+".."+b.OriginBranch()))
+	b.commitsBehind = len(getOutput("git", "log", "--format=format:x", b.Name+".."+b.OriginBranch(), "--"))
 }
 
 // Submitted reports whether some form of b's pending commit
@@ -157,7 +157,7 @@
 		return false
 	}
 	line := "Change-Id: " + id
-	out := getOutput("git", "log", "-n", "1", "-F", "--grep", line, b.Name+".."+b.OriginBranch())
+	out := getOutput("git", "log", "-n", "1", "-F", "--grep", line, b.Name+".."+b.OriginBranch(), "--")
 	return strings.Contains(out, line)
 }
 
diff --git a/git-codereview/branch_test.go b/git-codereview/branch_test.go
index 1c18cfa..6bc52f3 100644
--- a/git-codereview/branch_test.go
+++ b/git-codereview/branch_test.go
@@ -91,3 +91,18 @@
 		t.Errorf("LocalBranches() = %v, want %v", names, want)
 	}
 }
+
+func TestAmbiguousRevision(t *testing.T) {
+	gt := newGitTest(t)
+	defer gt.done()
+	gt.work(t)
+
+	t.Logf("creating file paths that conflict with revision parameters")
+	mkdir(t, gt.client+"/origin")
+	write(t, gt.client+"/origin/master..work", "Uh-Oh! SpaghettiOs")
+	mkdir(t, gt.client+"/work..origin")
+	write(t, gt.client+"/work..origin/master", "Be sure to drink your Ovaltine")
+
+	b := CurrentBranch()
+	b.Submitted("I123456789")
+}
diff --git a/git-codereview/gofmt.go b/git-codereview/gofmt.go
index 648b795..529364b 100644
--- a/git-codereview/gofmt.go
+++ b/git-codereview/gofmt.go
@@ -119,7 +119,7 @@
 	}
 
 	// Find files modified in the index compared to the branchpoint.
-	indexFiles := addRoot(repo, filter(gofmtRequired, getLines("git", "diff", "--name-only", "--diff-filter=ACM", "--cached", b.Branchpoint())))
+	indexFiles := addRoot(repo, filter(gofmtRequired, getLines("git", "diff", "--name-only", "--diff-filter=ACM", "--cached", b.Branchpoint(), "--")))
 	localFiles := addRoot(repo, filter(gofmtRequired, getLines("git", "diff", "--name-only", "--diff-filter=ACM")))
 	localFilesMap := stringMap(localFiles)
 	isUnstaged := func(file string) bool {
diff --git a/git-codereview/gofmt_test.go b/git-codereview/gofmt_test.go
index 8cd3d81..94fd132 100644
--- a/git-codereview/gofmt_test.go
+++ b/git-codereview/gofmt_test.go
@@ -169,3 +169,13 @@
 	testNoStdout(t)
 	testPrintedStderr(t, wantErr...)
 }
+
+func TestGofmtAmbiguousRevision(t *testing.T) {
+	gt := newGitTest(t)
+	defer gt.done()
+
+	t.Logf("creating file that conflicts with revision parameter")
+	write(t, gt.client+"/HEAD", "foo")
+
+	testMain(t, "gofmt")
+}
diff --git a/git-codereview/mail.go b/git-codereview/mail.go
index c06a784..9a44b18 100644
--- a/git-codereview/mail.go
+++ b/git-codereview/mail.go
@@ -36,7 +36,7 @@
 	}
 
 	if *diff {
-		run("git", "diff", b.Branchpoint()+"..HEAD")
+		run("git", "diff", b.Branchpoint()+"..HEAD", "--")
 		return
 	}
 
diff --git a/git-codereview/mail_test.go b/git-codereview/mail_test.go
index 8b80f9f..e3543df 100644
--- a/git-codereview/mail_test.go
+++ b/git-codereview/mail_test.go
@@ -35,3 +35,16 @@
 	testMainDied(t, "mail")
 	testPrintedStderr(t, "git origin must be a Gerrit host, not GitHub: https://github.com/golang/go")
 }
+
+func TestMailAmbiguousRevision(t *testing.T) {
+	gt := newGitTest(t)
+	defer gt.done()
+	gt.work(t)
+
+	t.Logf("creating file that conflicts with revision parameter")
+	b := CurrentBranch()
+	mkdir(t, gt.client+"/origin")
+	write(t, gt.client+"/"+b.Branchpoint()+"..HEAD", "foo")
+
+	testMain(t, "mail", "-diff")
+}
diff --git a/git-codereview/pending.go b/git-codereview/pending.go
index a90f6ce..de9e4f5 100644
--- a/git-codereview/pending.go
+++ b/git-codereview/pending.go
@@ -41,7 +41,7 @@
 		b.staged, b.unstaged, b.untracked = LocalChanges()
 	}
 	if b.parentHash != "" && b.commitHash != "" {
-		b.committed = getLines("git", "diff", "--name-only", b.parentHash, b.commitHash)
+		b.committed = getLines("git", "diff", "--name-only", b.parentHash, b.commitHash, "--")
 	}
 	if !pendingLocal {
 		b.g, b.gerr = b.GerritChange("DETAILED_LABELS", "CURRENT_REVISION", "MESSAGES", "DETAILED_ACCOUNTS")
