Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Tracked file still shown as untracked after git.reload()

已关闭
#3,366 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

@ytret 已经在做这个了。

开始于 2026年10月18日。

  • #3367 来自 @ytret —— 未关闭

评估

难度
3/5
预计耗时
1-2 天
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
git, lua, neovim

调研方向

Reproduce the bug by disabling filesystem_watchers, opening a temporary repository, and running require("nvim-tree.api").git.reload() after committing an untracked file. Start with the Git reload path in nvim-tree.api and the status-metadata update logic, then compare it with the full tree refresh path. Done means the tracked marker disappears after git.reload() with watchers disabled and a regression test covers that configuration.

由索引模型根据 Issue 内容生成。

描述

bug reproduced
Description

With disabled filesystem_watchers, running :lua require("nvim-tree.api").git.reload() does not update the tracked status of untracked/tracked files.

Neovim version
NVIM v0.12.6
Build type: Release
LuaJIT 2.1.1791988261
Operating system and version

macOS 15.7.9

Windows variant

No response

nvim-tree version

355bcc8

Clean room replication
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

vim.cmd([[set runtimepath=$VIMRUNTIME]])
vim.cmd([[set packpath=/tmp/nvt-min/site]])
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
  require("packer").startup({
    {
      "wbthomason/packer.nvim",
      "nvim-tree/nvim-tree.lua",
      "nvim-tree/nvim-web-devicons",
      -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    },
    config = {
      package_root = package_root,
      compile_path = install_path .. "/plugin/packer_compiled.lua",
      display = { non_interactive = true },
    },
  })
end
if vim.fn.isdirectory(install_path) == 0 then
  print("Installing nvim-tree and dependencies.")
  vim.fn.system({ "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path })
end
load_plugins()
require("packer").sync()
vim.cmd([[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]])
vim.opt.termguicolors = true
vim.opt.cursorline = true

-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
  require("nvim-tree").setup({
    filesystem_watchers = {
      enable = false,
    },
  })
end

-- UNCOMMENT this block for diagnostics issues, substituting pattern and cmd as appropriate.
-- Requires diagnostics.enable = true in setup.
--[[
vim.api.nvim_create_autocmd("FileType", {
  pattern = "lua",
  callback = function()
    vim.lsp.start {
      name = "my-luals",
      cmd = { "lua-language-server" },
      root_dir = vim.loop.cwd(),
    }
  end,
})
]]
Steps to reproduce
  1. Create a temporary repo
mkdir /tmp/repro && cd /tmp/repro && git init .
  1. Create an untracked file
touch example.txt
  1. Start nvim
nvim -nu /tmp/nvt-min.lua
  1. Open the neovim tree with :NvimTreeOpen. Note the star near 'example.txt'.
  2. Track the file in another terminal
cd /tmp/repro && git add example.txt && git commit -m "Track example.txt"
  1. Request Git refresh in neovim:
:lua require("nvim-tree.api").git.reload()
Expected behavior

The star near example.txt disappears.

Actual behavior

The star near example.txt does not disappear.

Additional info

Pressing R for full tree refresh removes the star.

主要语言
Lua
星标
8.7k
派生
642
平均合并
2 天 4 小时
30 天内合并 PR
5

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nvim-tree/nvim-tree.lua 的其他 Issue

查看 nvim-tree/nvim-tree.lua 的全部 Issue

相似的 Issue

更多 Lua Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。