[英]In Jenkinsfile get git files in current branch into a list (windows)
[英]Git/Windows - Case sensitivity issues when checking out a branch (and pulling/merging a branch). Affected files are all lowercase in Windows Explorer
關於區分大小寫,git 和 Windows 有一個非常奇怪的問題。
我不是 git 的高手,但我也不是初學者。 只想把它扔出去。
我面臨的問題:
克隆一個存儲庫(不要指定分支,只需獲取遠程原始主機上的內容)
檢查現有的開發分支(我們稱之為 DEV)
許多文件現在都是小寫的
一種。 這些文件的兩個分支都具有相同的大小寫
b. 受影響的文件似乎是包含兩個分支之間內容差異的文件
c。並非所有文件都受到影響
附加條款:
使用 Windows 系統(不區分大小寫)
git 配置文件定義 ignorecase = true
一種。 嘗試切換到 false,並沒有消除這個問題
嘗試在每個分支上運行 ls-tree,兩者都顯示文件具有相同的大小寫(不是全部小寫)
切換到 Dev 分支並返回 master 時,受影響的文件名保持小寫
直接克隆 Dev 分支工作正常。 不會導致這些小寫文件名
我已經嘗試了很多方法來解決這個問題,盡管目前還沒有解決方案。
有人知道這里發生了什么嗎? 關於這個問題,我沒有找到太多支持。
這個問題看起來是相關的(但沒有答案):
謝謝
可能有人可以確切地弄清楚發生了什么以及為什么會發生,但是我恐怕大多數回答這個問題的人都會提供一些類似“如果它會受傷,請不要這樣做”的東西。
例如,torek 建議在評論中獲取 Linux 系統。 Torek 是 stackoverflow 上最有經驗的人之一,如果他們沒有給你答案,很可能它不會到來。
如果您不想獲得 Linux 系統,另一種選擇是將所有文件的大小寫更改為相同(例如全部小寫)。
由於這個原因,人們經常建議人們不要在文件名中混合大小寫。 我個人更喜歡全部小寫。
在 Windows 中的文件夾上啟用區分大小寫。 (NTFS 自 2018 年 4 月起具有此功能。)
fsutil file setCaseSensitiveInfo <folder> enable
請參閱https://docs.microsoft.com/en-us/windows/wsl/case-sensitive
在 git 存儲庫中找到 Windows 不區分大小寫的重復目錄路徑
以管理員身份打開Powershell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
(需要重啟機器)
以管理員身份打開Powershell
cd drive:\your\root\folder
(Get-ChildItem -Recurse -Directory).FullName | ForEach-Object {fsutil.exe file setCaseSensitiveInfo $_ enable}
打開 git Bash
cd /drive/your/root/folder
find * -type d | uniq -di
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.