我注意到在Windows环境下使用Git提交或检出文件时,文件属性(例如隐藏或只读)未被保留。如果我提交了一个隐藏文件,然后在另一台计算机上检出它,该文件将不再是隐藏的。是否有可能使Git识别Windows文件属性?
我注意到在Windows环境下使用Git提交或检出文件时,文件属性(例如隐藏或只读)未被保留。如果我提交了一个隐藏文件,然后在另一台计算机上检出它,该文件将不再是隐藏的。是否有可能使Git识别Windows文件属性?
不, Git 也没有跟踪完整的 UNIX 权限,它只是为了方便记住可执行位。至于为什么 — 它是一个版本控制系统,旨在主要跟踪源代码。这使得该功能变得毫无用处(更不用说 ‘hidden’ 属性本身就相当无用了)。
\.git\hooks\post-checkout
,并将以下内容添加进去:#!/usr/bin/env pwsh
param (
$PreviousHead,
$NewHead,
# Branch 1, File 0.
$BranchOrFile
)
$Name = '.HideMe'
if ((Test-Path $Name) -and !(Get-Item $Name -Force).Attributes.HasFlag([IO.FileAttributes]::Hidden)) {
(Get-Item $Name).Attributes += 'Hidden'
}
.HideMe
更改为您想要隐藏的文件/文件夹,如果需要,还可以使用3个参数,比如仅在分支检出或文件检出时运行。这需要安装PowerShell Core才能工作,但也可能可以在cmd或Windows PowerShell中实现。