"git checkout -" 是做什么的?

What does "git checkout -" do?

我看到了一种奇怪的 git 结帐命令。

git checkout -

- 在这里做什么?

cd -一样。所以你回到最后一个分支。如果你从 master:

开始,这三个序列做同样的事情
# Way 1
git checkout mybranch
git checkout master

# Way 2 (same result)
git checkout mybranch
git checkout -

# Way 3 (same result)
git checkout mybranch
git checkout @{-1}

chepner 所述,您可以使用 @{-N}

返回到先前签出的第 n 个分支

它切换回您之前所在的分支。如果您再次 运行 ,您将切换回第一个分支。一个有用的比较是 cd -,如您所知,它会将您带回到最近的目录。

Have a look in this source

它会结帐到最后一个分支(我认为)。

Keenens-MacBook:testdir keenencates$ git branch mybranch
Keenens-MacBook:testdir keenencates$ ls
hello.py
Keenens-MacBook:testdir keenencates$ git checkout mybranch
Switched to branch 'mybranch'
Keenens-MacBook:testdir keenencates$ ls
hello.py
Keenens-MacBook:testdir keenencates$ git checkout -
Switched to branch 'master'
Keenens-MacBook:testdir keenencates$ 

你可以看下面,看看我自己的白痴。

我不认为它有任何作用。

Keenens-MacBook:sentiment-rnn keenencates$ cd testdir/
Keenens-MacBook:testdir keenencates$ ls
Keenens-MacBook:testdir keenencates$ git init
Initialized empty Git repository in /Users/keenencates/Documents/Udacity/DLND/master_projects/sentiment-rnn/testdir/.git/
Keenens-MacBook:testdir keenencates$ vim hello.py
Keenens-MacBook:testdir keenencates$ ls
hello.py
Keenens-MacBook:testdir keenencates$ git add .
Keenens-MacBook:testdir keenencates$ git commit
[master (root-commit) 2ffa8de] init
 1 file changed, 1 insertion(+)
 create mode 100644 hello.py
Keenens-MacBook:testdir keenencates$ ls
hello.py
Keenens-MacBook:testdir keenencates$ git checkout -
error: pathspec '-' did not match any file(s) known to git.
Keenens-MacBook:testdir keenencates$