我有一个带有链接列表实现的文件夹,现在只适用于整数。我测试了它,它完美无缺。现在我的老板告诉我,我需要更新我的实现,以便它现在可以使用任何数据类型。
在我继续编辑代码之前,我创建了一个名为_test_templates的新git分支,使用git checkout切换到这个新分支,然后开始试验。过了一段时间,我意识到我的代码不起作用,我想我会从头开始。我切换回Master,并删除我的_test_templates分支。
令我困惑的是,我的_templates_test分支中的Node.h,Node.cpp,LinkedList.h,LinkedList.cpp和main.cpp所做的更改也存在于master分支中。
为什么呢?我不是在一个叫做独立于主人的分支的全新临时空间工作吗?
我没有在本地或远程的新分支上提交更改。
答案 0 :(得分:4)
git branch
将为提交创建一个新的位置(种类),以及一个用于添加文件的新索引。但是,对工作目录中文件的更改不属于分支,即使跟踪文件本身也是如此。当您再次检出master
分支时,您保留了尚未从_test_templates
分支提交的工作更改。
从安全角度来看,这是有道理的 - 更改不会被提交,因此如果在更改分支时丢失它们,git将无法恢复它们。它们可能会被自动隐藏,但这不是非常用户友好。因此,改变只是保持在本地。
答案 1 :(得分:0)
运行git reset --hard
以放弃任何未提交的更改。