git - 本地分支在没有明显原因的情况下显示未暂存的更改和未跟踪的文件
问题描述
最近我开始做一个大项目,我刚刚克隆了仓库,主分支被调用,dev
所有的拉取请求都合并到那个分支中。
我没有对回购做任何工作,但由于某种原因,当我这样做时git status
,我不知道有什么变化。我这样做是为了清理我的 git 状态:
git add . && git reset --hard HEAD
这样,我只需删除所有那些神奇地出现的本地更改,并确保我的dev
分支是最新的远程我只是做了一个git pull
然而,这种情况反复发生,所以这变得很烦人。今天我检查了一些未暂存的更改,并查看远程dev
分支,我可以看到这些更改今天已提交。我认为由于某种原因 git 正在将dev
分支与我的本地dev
分支同步并将更改显示为本地更改。
知道为什么会发生这种情况吗?
解决方案
发生这种情况的原因是您看到了从 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 将无法在这些文件被跟踪后忽略它们。
推荐阅读
- c++11 - copy_if 函数及其参数
- ruby-on-rails - 必须指定一个 iv attr_encrypted,如何检查登录名和密码
- java - 使用 REST API - Java 将图像附件上传到 SharePoint Lsit 项目
- c# - ASP.NET MVC 使用 NLog 记录多个项目
- php - 如何在 PHP 中加载带有引用的 json 数据库文件
- python - 选项卡以空单元格开头时的 read_excel
- java - 当布尔 Mono 是某个值时,一种不那么冗长的抛出方式
- node.js - Webpack 在我的 node.js 项目中不起作用。事件
- c# - 我应该如何通过c#编程在word文档中插入动态雷达图
- android - 如果设备未植根,则以编程方式完成时,安装对话框不会在 oreo 中显示