我注意到在Windows环境中使用Git提交或签出文件时,文件属性不会保留(例如隐藏或只读)。如果我提交了一个隐藏文件,然后在另一台计算机上将其签出,则该文件将不再隐藏。有没有可能让Git识别Windows文件属性?
发布于 2012-01-04 00:11:34
不是的。Git也不会跟踪完整的UNIX权限,它只是为了方便起见而记住了可执行的部分。至于原因--它是一个版本控制系统,主要是用来跟踪源代码的。这使得该功能完全无用(更不用说“隐藏”属性本身也是非常无用的)。
发布于 2012-01-04 00:16:39
您可以使用签出后客户端挂钩进行所需的任何更改。在您的示例中,您将使用它来运行一个脚本,该脚本设置所需的Windows文件属性。
ProGit在"Other Client Hooks“段落中对此进行了概括的描述:
Customizing Git Hooks
另请参见githooks手册页。
发布于 2019-11-16 08:21:42
我尝试了@wadesworld建议,并想出了这样的方法,创建包含以下内容的文件\.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个参数,例如,仅在分支机构签出或文件签出时运行。这需要安装Windows才能工作,但也可以在cmd或PowerShell PowerShell中实现。
https://stackoverflow.com/questions/8715043
复制相似问题