首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当"git status“显示所有分支上被跟踪的文件更改时,"git checkout -f”有什么用处?

当"git status“显示所有分支上被跟踪的文件更改时,"git checkout -f”有什么用处?
EN

Stack Overflow用户
提问于 2011-11-28 13:25:13
回答 3查看 671关注 0票数 1

我在master分支上修改了一个被跟踪的文件(一个旧的版本化文件)。主分支上的状态将此文件显示为已修改,但主题分支上的状态也将此文件显示为已修改。

之前有一个错误" error : You have local changes to "X";cannot switch branch“当我在结账时没有进行存储或者在git-checkout中没有使用"-f”。

我已经检查了"stackoverflow.com/questions/1304626/git-switch-branch-and-ignore-any-changes-without-committing“,但该错误没有发生,即使我有本地更改,也可以签出。

是否有任何类型的配置导致了这种混乱?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-29 02:00:32

看起来您切换到的分支与您来自的分支处于相同的状态。每个分支都是提交树上的一个指针。因此,如果两个分支为point to the same set of commits,则可以在它们之间切换,而无需签入本地更改。原因是,在您实际提交更改之前,git将更改提交到哪个分支并不重要。然而,一旦您提交了更改,那么一个分支拥有它,而另一个分支没有,它们的历史现在是不同的。

票数 2
EN

Stack Overflow用户

发布于 2011-11-28 14:05:36

除非您提交,否则修改的更改不是任何分支的一部分,但适用于您的工作目录,并且检出另一个分支也会将这些更改带到另一个分支(除非存在冲突)

如果您不希望在master中所做的更改在签出时位于其他分支中,请提交更改或将其隐藏起来。

票数 5
EN

Stack Overflow用户

发布于 2011-11-28 13:32:23

试一试

代码语言:javascript
复制
git reset --hard HEAD

在主服务器上

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8291833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档