http://norbauer.com/notebooks/code/notes/git-revert-reset-a-single-file
我找到了一个帖子.
但还是不知道之间有什么区别
git checkout <filename>
git checkout -- <filename>
在什么情况下我应该分别使用第一个和第二个?
zwo*_*wol 197
特殊的"选项" --意味着"将此点之后的每个参数视为文件名,无论它看起来如何." 这不是Git特有的,它是一般的Unix命令行约定.通常,您使用它来阐明参数是文件名而不是选项,例如
rm -f # does nothing
rm -- -f # deletes a file named "-f"
Run Code Online (Sandbox Code Playgroud)
git checkout1也--意味着后续参数不是它的可选"treeish"参数,用于指定您想要的提交.
因此,在此上下文中,始终使用是安全的--,但是当您要还原的文件的名称以分支的名称开头或与分支的名称相同时,您需要它-.分支/文件消歧的一些示例:
git checkout README # would normally discard uncommitted changes
# to the _file_ "README"
git checkout master # would normally switch the working copy to
# the _branch_ "master"
git checkout -- master # discard uncommitted changes to the _file_ "master"
Run Code Online (Sandbox Code Playgroud)
和选项/文件消歧:
git checkout -p -- README # interactively discard uncommitted changes
# to the file "README"
git checkout -- -p README # unconditionally discard all uncommitted
# changes to the files "-p" and "README"
Run Code Online (Sandbox Code Playgroud)
如果你有一个名字开头的分支,我不知道你做了什么-.也许首先不要这样做.
1在此模式下; "checkout"也可以做其他几件事.我从来没有理解为什么git选择实施"丢弃未提交的更改"作为"checkout"子命令的模式,而不是像大多数其他VCS那样"恢复",或者"重置",我认为这可能在git自己的术语中更有意义.
| 归档时间: |
|
| 查看次数: |
38210 次 |
| 最近记录: |