【发布时间】:2018-04-22 14:13:04
【问题描述】:
我看到了一种奇怪的 git checkout 命令。
git checkout -
- 在这里做什么?
【问题讨论】:
标签: git git-bash git-checkout
我看到了一种奇怪的 git checkout 命令。
git checkout -
- 在这里做什么?
【问题讨论】:
标签: git git-bash 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 -
-是@{-1}的快捷方式,其中@{-N}是指第n个之前签出的分支。
它会结帐到最后一个分支(我认为)。
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$
【讨论】:
它切换回您之前所在的分支。如果再次运行它,您将切换回第一个分支。一个有用的比较是cd -,您可能知道它会带您回到最近的目录。
【讨论】: