path: root/Documentation/git-checkout.txt
diff options
authorJunio C Hamano <>2016-09-26 23:09:18 (GMT)
committerJunio C Hamano <>2016-09-26 23:09:18 (GMT)
commit31b83f361bd962e9c5f96bf7714051d77f592af2 (patch)
tree457f3839db3bba30e984dfc9d973fa0e7c981c8e /Documentation/git-checkout.txt
parent8969feac7ee119dc3cdae0e2d8c65516aa8f4045 (diff)
parentb829b9439adc12fa4fb33338694e7f1ad40254c1 (diff)
Merge branch 'nd/checkout-disambiguation'
"git checkout <word>" does not follow the usual disambiguation rules when the <word> can be both a rev and a path, to allow checking out a branch 'foo' in a project that happens to have a file 'foo' in the working tree without having to disambiguate. This was poorly documented and the check was incorrect when the command was run from a subdirectory. * nd/checkout-disambiguation: checkout: fix ambiguity check in subdir checkout.txt: document a common case that ignores ambiguation rules checkout: add some spaces between code and comment
Diffstat (limited to 'Documentation/git-checkout.txt')
1 files changed, 12 insertions, 0 deletions
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 7a2201b..8e2c066 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -419,6 +419,18 @@ $ git reflog -2 HEAD # or
$ git log -g -2 HEAD
+When there is only one argument given and it is not `--` (e.g. "git
+checkout abc"), and when the argument is both a valid `<tree-ish>`
+(e.g. a branch "abc" exists) and a valid `<pathspec>` (e.g. a file
+or a directory whose name is "abc" exists), Git would usually ask
+you to disambiguate. Because checking out a branch is so common an
+operation, however, "git checkout abc" takes "abc" as a `<tree-ish>`
+in such a situation. Use `git checkout -- <pathspec>` if you want
+to checkout these paths out of the index.