下一个git
命令有什么区别:
git checkout branch
git checkout branch .
git checkout . #<-- used at the branch
Run Code Online (Sandbox Code Playgroud)
为什么当我用不同的分支机构检查不同的分支机构时,我错过了一些文件.
但是当我使用第二个命令时,一切正常吗?
Jan*_*dec 41
git checkout
(1)无论是否给定路径说明符,都会做很多不同的事情.
git checkout branch
),它会将当前工作目录切换到指定的分支,如果可能,保持本地更改,否则失败.如果你已经开启branch
,它将什么都不做.它只改变了工作目录之间差异的文件HEAD
,并branch
和其中是否有本地修改(编入索引)失败..
指定内容的所有匹配文件(所有文件匹配):
git checkout .
),它会从索引中写入内容.它是unoes unstated本地修改.要撤消分阶段修改,请使用git reset
路径说明符.git checkout branch .
),它将内容写入指定的修订版本.它不会修改哪些HEAD
点,所以如果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 .
现在没有命名分支.
所以它只是从当前分支下拉当前文件夹名称.