首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >git忽略文件防止切换分支

git忽略文件防止切换分支
EN

Stack Overflow用户
提问于 2022-07-14 16:04:01
回答 3查看 57关注 0票数 0

我的印象是,在git回购中,任何被忽略的文件都是不相关的。但我遇到了以下情况:

.vs文件夹在.gitignore中列出:

代码语言:javascript
运行
复制
$ cat .gitignore
.git/
.vs/
bin/
My Project/
obj/
packages/
App_Data/

但是,当我试图切换到另一个分支时,.vs文件夹中的一个文件正在阻塞:

代码语言:javascript
运行
复制
$ git checkout test
error: Your local changes to the following files would be overwritten by checkout:
        .vs/myproject/v16/.suo
Please commit your changes or stash them before you switch branches.
Aborting

如果我试图添加这个文件,git会抱怨:

代码语言:javascript
运行
复制
$ git add .vs/myproject/v16/.suo
The following paths are ignored by one of your .gitignore files:
.vs
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"

并对此表示感谢。

EN

回答 3

Stack Overflow用户

发布于 2022-07-14 16:39:44

忽略的文件是未跟踪的,而且git checkout不会覆盖未跟踪的文件。为了避免永久删除内容,这是一件安全的事情。

你可以用-f强制结账.

-f,-力

在切换分支时,即使索引或工作树与HEAD不同,也继续进行,即使在中存在方式的未跟踪文件也是如此。这用于丢弃本地更改和任何未跟踪的文件或目录。

或者,因为它无论如何都会被签出覆盖,所以您可以删除违规文件然后签出。

我建议删除该文件,因为它特定于一个文件,而-f可以覆盖更多的内容。

票数 0
EN

Stack Overflow用户

发布于 2022-07-14 16:47:27

让git取消对.gitignore中列出的文件和文件夹的跟踪,并记住提交让它生效。

代码语言:javascript
运行
复制
git rm -r --cached .
git add .
git commit -m "Remove ignored files"

详细信息

How do I make Git forget about a file that was tracked, but is now in .gitignore?

git rm

票数 0
EN

Stack Overflow用户

发布于 2022-07-14 17:54:14

因为您已经将.vs/添加到.gitignore中,但是它仍然处于git缓存中。为了摆脱这种局面。您必须从缓存中删除它,然后尝试更改分支。

请遵循以下步骤:

代码语言:javascript
运行
复制
git rm -r --cached .vs

如果它显示了添加到.gitignore中的新更改,那么提交这些更改并更改分支,否则只需更改分支就可以了。

代码语言:javascript
运行
复制
git checkout test
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72983510

复制
相关文章

相似问题

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