如何在结帐时将目录树结构恢复到分支

时间:2011-07-08 17:34:08

标签: git

假设我有分支主人 在master中我创建了one.c,然后提交了更改

然后我创建了另一个名为new_branch的分支,并检入了它 然后添加了两个c,然后提交更改

当我再次结账时,工作目录中仍然存在two.c

我需要一种方法,通过这种方式,在结帐时,一个特定的分支,目录树变成了它的原因

在我的情况下,切换到master后,我不想在currect目录中看到two.c. 如果我签出new_branch,则再次出现two.c

如何做到这一点?

3 个答案:

答案 0 :(得分:0)

git reset --hard应删除未跟踪的文件(如two.c)

答案 1 :(得分:0)

您期望的是实际正常的Git行为。切换到分支时,不在前一个分支的分支中的文件被“隐藏”。但众所周知,有时情况并非如此。通常在文件(在您的情况下为two.c)正在使用时发生,例如在IDE中。

在这里查看:Git not removing files when switching branch和此处:git checkout remote branch shows extraneous files?

与上面提到的答案相似,请尝试git reset --hardgit clean -fdx

答案 2 :(得分:0)

使用它 在分支A类型

git stash

然后切换分支

git checkout <branch name>

然后

git stash pop

看看它是否有效