首页 > 解决方案 > 本地分支在没有明显原因的情况下显示未暂存的更改和未跟踪的文件

问题描述

最近我开始做一个大项目,我刚刚克隆了仓库,主分支被调用,dev所有的拉取请求都合并到那个分支中。

我没有对回购做任何工作,但由于某种原因,当我这样做时git status,我不知道有什么变化。我这样做是为了清理我的 git 状态:

git add . && git reset --hard HEAD

这样,我只需删除所有那些神奇地出现的本地更改,并确保我的dev分支是最新的远程我只是做了一个git pull

然而,这种情况反复发生,所以这变得很烦人。今天我检查了一些未暂存的更改,并查看远程dev分支,我可以看到这些更改今天已提交。我认为由于某种原因 git 正在将dev分支与我的本地dev分支同步并将更改显示为本地更改。

知道为什么会发生这种情况吗?

标签: gitgithub

解决方案


发生这种情况的原因是您看到了从 IDE 自动生成的文件。

这是很正常的。如果您有权限,您需要做的只是将这些文件添加到 .gitignore 和 git add .gitignore && git commit -m "Update gitignore"dev 上。

如果您没有权限,请创建一个分支:

git checkout -b gitignore

将自动生成的文件添加到 .gitignore 并提交这些更改

git add .gitignore && git commit -m "Update .gitignore"

从 dev 创建另一个功能分支后,只需转到该功能分支并

git merge gitignore

但是,请注意,上述解决方案仅适用于尚未跟踪的文件。如果像您一样通过暂存文件来跟踪您的文件,则:

将每个文件添加到 .gitignore 后,您需要做的是:

git update-index --assume-unchanged <file>

否则,.gitignore 将无法在这些文件被跟踪后忽略它们。


推荐阅读