我刚刚克隆了一个git存储库并检出了一个分支.我努力了,然后决定删除我所有的本地更改,因为我想要原始副本.
简而言之,我必须执行以下两个命令来删除我的本地更改
git checkout .
git clean -f
Run Code Online (Sandbox Code Playgroud)
我的问题是,
(1)这是摆脱当地变化的正确方法,或者请让我知道正确的方法.
(2)我们什么时候使用,git reset --hard因为即使没有这个命令也可以重置
谢谢
*解决方案:主要编辑:03/26:* 用git特定术语[tracked/untracked/staged/unstaged]替换了许多含糊不清的术语
当我们进行本地更改时,只有三类文件:
类型1.分阶段跟踪文件
键入2.未分级跟踪文件
键入3. Unstaged UnTracked文件,即UnTracked文件
每个命令的作用:
git checkout . - 仅删除未分级跟踪文件[类型2]
git clean -f - 仅删除未分级的UnTracked文件[类型3]
git reset --hard - 仅删除分阶段跟踪和未分阶段跟踪文件[类型1,类型2]
git stash -u - 删除所有更改[类型1,类型2,类型3]
结论:
很明显,我们可以使用其中之一
(1) combination of `git clean -f` and `git reset --hard`
Run Code Online (Sandbox Code Playgroud)
要么
(2) `git stash -u`
Run Code Online (Sandbox Code Playgroud)
达到预期的效果.
注意:存储,因为这个词的意思是"在指定的地方安全地,秘密地存储(某物)".这总是可以使用git stash pop.因此,在上述两个选项之间进行选择是开发人员的号召.
谢谢Christoph和FrederikSchøning.
编辑:03/27
我认为值得把" …