我正在尝试确定以下4个命令之间存在的差异。
假设当前分支是master
,当前目录是“工作目录”,即.git
所在的目录。
git checkout
git checkout HEAD
git checkout master
git checkout -- .
据我所知,前两个命令完全等效,并且基本上是无操作的(除了它们都可能产生一些输出的事实);第三个几乎与前两个相同,除了它将产生,除了前者产生的任何其他输出,行Already on 'master'.
最后一个命令,与所有其他命令相反,将丢弃所有未分期的变化。
我错过了什么吗?
答案 0 :(得分:0)
根据TFM,git checkout
命令有四种形式。您的前两个示例是其中之一,另外两个示例是另外两个示例。
所以为了回答你的问题,你错过了git checkout
的最后一种形式:
git checkout -b <new branch name> <start point>
答案 1 :(得分:0)
前3个是相同的(并且不是 no-ops,如果你确实改变了一些文件,它们将被master中的那些文件替换)。第4个检出仅'。'中的文件,即当前目录。