1

我正在尝试确定以下 4 个命令之间存在的差异。

假设当前分支为master,当前目录为“工作目录”,即所在目录.git

git checkout

git checkout HEAD

git checkout master

git checkout -- .

据我所知,前两个命令是完全等价的,并且本质上是无操作的(除了它们都可能产生一些输出的事实);第三个几乎与前两个相同,除了它会产生任何其他输出,除了前一个产生的任何其他输出,Already on 'master'. 最后一个命令,与所有其他命令相比,将丢弃所有未分级的更改。

我错过了什么吗?

4

2 回答 2

0

前 3 个是相同的(并且不是无操作,如果您确实更改了某些文件,它们将被 master 提示中的文件替换)。第 4 个只检出'.' 中的文件,即当前目录。

于 2013-03-19T19:57:49.790 回答
0

根据TFM,命令有四种形式git checkout。你的前两个例子是其中一个,你的另外两个例子是另外两个。

所以要回答你的问题,你错过了最后一种形式git checkout

git checkout -b <new branch name> <start point>

于 2013-03-19T19:28:57.897 回答