工作上的小插曲。用 Visual Studio 2019 開發 ASP.NET MVC 專案,簽入 TFS Git 後同事抓回去發現漏了 /Views/Debug 下的幾個 cshtml。

聽到檔案路徑我很快就想到原因,是 .gitignore:

為避免編譯後的結果混入版控範圍,微軟提供的 Visual Studio 專用 .gitignore 排除了 Debug、Release、bin、obj... 等路徑。我的 MVC 專案有個 DebugController,它對應的 View 在 /Views/Debug 目錄下,無辜中槍被排除在外。(排除清單包含的項目蠻多的,專案寫多難免會踩到)

如下圖示範,Views/Debug/Index.cshtml 前方不是藍色鎖頭圖示,而是紅圈減號,代表不納入版控。要解決問題,在 Views/Debug 資料夾或 Index.cshtml 按右鍵選單有個 Add Ignored File to Source Control... 加入版控就 OK 了:

加入後發現異動項目只有 Index.cshtml, .gitignore 與 .csproj 都沒動,讓我納悶了一下,沒修改忽略名單或 .csproj,Visual Studio 要怎麼改變它被排除的設定呢?

仔細一想,發現是自己犯傻,背後動作就只是 git add Views/Debug/Index.cshtml 而已,什麼設定都不用改,當然就只會動到 Index.cshtml 一個檔案而已,哈!

Tips: files under folders named Debug won't be added to Git by Visual Studio.


Comments

# by 只是個路人

NVC => MVC 第一行打錯啦!

# by Jeffrey

to 只是個路人,恭喜發現彩蛋! (謎:手殘打錯就打錯字,彩你個大頭鬼) 感謝指正。

Post a comment