我换了那个[
dev
]分支并切换回
master
…
最有可能的是那些文件
主人
并列入
.gitignore
是
目前
在小费中
DEV
.
做:
git checkout dev
告诉你的Git:
将我的索引和工作树内容替换为提交到的内容
DEV
点。
因此,您的Git会找到冻结在特定提交中的所有文件,从该提交中提取它们,将它们放入索引中,然后将它们还原(解冻并解压缩)到您的工作树中。
这自然覆盖了
未跟踪的
工作树中的文件。但没什么大不了的,对吧?他们在承诺中。
然后你告诉Git:
将我的索引和工作树内容替换为提交到的内容
主人
点。
因此,您的Git会在
主人
,提取它们,并像以前一样将它们放入索引和工作树中。这次,那些文件
不是
在承诺中。但它们被跟踪,并与提交的副本匹配,所以Git
移除
他们。
现在他们走了!
你可以在
DEV
,而不进行跟踪,使用
git show
:
git show dev:file > file
这将提取提交时由
DEV
,生成输出到stdout,然后重定向到该文件。不幸的是它能让你得到一切
冻结在那个承诺中
不一定符合
在你的工作树上
当你跑
git checkout dev
原来。
通常,Git会在其中一个步骤中警告您这一点。如果您注意到这些警告并将文件移到一边,那么您已经将这些移到一边了。但是列出文件
吉蒂格诺
在某些情况下,具有给予Git的副作用
允许破坏其内容
. 所以有几个角落的情况下,Git会清除当前的内容,假设因为文件
吉蒂格诺
D,它们在任何方面都不珍贵。
恢复这些文件的唯一方法是在Git之外,使用诸如Mac上的Time Machine或系统备份。