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 .现在没有命名的分支.,所以它只会从当前分支中下拉当前文件夹名称。