git
下一个命令有什么区别:
git checkout branch
git checkout branch .
git checkout . #<-- used at the branch
为什么当我将不同的分支与第一个分支签入不同的文件夹时,我错过了一些文件。
但是当我使用第二个命令时,一切都好吗?
git
下一个命令有什么区别:
git checkout branch
git checkout branch .
git checkout . #<-- used at the branch
为什么当我将不同的分支与第一个分支签入不同的文件夹时,我错过了一些文件。
但是当我使用第二个命令时,一切都好吗?
git checkout
(1)无论是否给定路径说明符,都会做非常不同的事情。
git checkout branch
) 它将当前工作目录切换到指定分支,如果可能,保持本地更改,否则失败。如果你已经在branch
,它什么都不做。它仅修改工作目录中不同的文件,HEAD
并且branch
如果其中任何一个具有本地修改(索引或不索引),则失败。.
用指定的内容覆盖所有匹配的文件(所有文件匹配):
git checkout .
) 它从索引写入内容。也就是说,它撤消了未分级的本地修改。要撤消分阶段的修改,请使用git reset
路径说明符。git checkout branch .
) 它在指定的修订版中写入内容。它不会修改 whereHEAD
点,因此如果branch
与 不同HEAD
,之后会有未分级的更改。请注意,手册页区分了使用 -b/--branch 选项和 -p/--patch 选项的其他情况,但这些大多是上述情况的直接扩展。
上面的解释很好,但让我用例子来解释。
git checkout
可与文件夹和分支一起使用。
假设有index.html
文件和dev
文件夹。
如果我不小心更改index.html
并且我想撤消该更改,我将简单地运行git checkout index.html
. 它会让我的文件恢复到原来的形式。
现在假设我在 dev 文件夹中进行了一些更改,并希望将这些更改返回到 dev 文件夹中。如果我将使用git checkout dev
并且如果有任何dev
分支,那么它将签出该dev 分支而不是名为dev
.
所以我宁愿跑
git checkout -- dev
现在这个裸双破折号代表当前分支。所以上面的命令是从 git 询问的,请给我当前分支的 'dev' 命名文件夹。
让我们谈谈您的用例。
git checkout branch
此命令将简单地检查名为“branch”的分支
git checkout branch .
第二个命令将告诉 git 请.
从名为“branch”的分支中检出或当前文件夹名称
git checkout . #<-- used at the branch
正如你所说的,你首先切换到名为“branch”的分支,git checkout branch
然后你只是在做git checkout .
现在没有命名的分支.
,所以它只会从当前分支中下拉当前文件夹名称。