簡介
git for windows增加了符號鏈接的支持,其大體實現(xiàn)方法為,使用Windows Vista起增加的NTFS符號鏈接功能,模擬Linux下的符號鏈接,在使用git管理文件的過程中,由git在不同情況下自動轉換。
本文正文翻譯自git for windows的wiki文章Symbolic Links[附]。
正文:符號鏈接
短版本:在Windows下沒有和POSIX symlink完全等價的機制,而最為接近的解決辦法,在Windows默認的非管理員用戶下,是不可使用的。因此,symlink模擬支持默認是關閉的,需要用戶手動配置。用戶可以通過 core.symlinks=true來配置設置。
背景
從Windows Vista開始,Windows包含了對符號鏈接的支持。但這不是Unix的符號鏈接;它們在以下方面有所不同:
符號鏈接僅在Windows Vista及更新版本中支持,不包含XP。
你需要SeCreateSymbolicLinkPrivilege權限,這一權限默認只有Administrator擁有,但可以通過本地安全策略(Local Security Policy)或通過Active Directory使得普通用戶也有這一權限。家庭版的Windows Vista和Windows 7沒有本地安全策略,但免費的Polsedit可用于這些版本。注意,即使設置了權限分配,Administrator組的用戶仍然需要UAC許可(更多細節(jié)在Access Token Change)。
在遠程文件系統(tǒng)中,符號鏈接默認被禁用(可以通過命令fsutil behavior query SymlinkEvaluation來查看)
符號鏈接僅適用于NTFS,不適用于FAT
Windows下的符號鏈接是分類型的:它們需要知道它們指向的是文件夾還是文件(因此,Git發(fā)現(xiàn)錯誤時會自動更新類型)
許多程序不能支持符號鏈接
由于這些原因,Git for Windows默認禁用了對符號鏈接的支持(但遇到符號鏈接時Git仍能夠讀?。?。你可以通過core.symlink配置變量來開啟對符號鏈接的支持,例如,當克隆倉庫時:
git clone -c core.symlinks=true <URL>
創(chuàng)建符號鏈接
默認情況下,Git Bash中的ln -s命令并非創(chuàng)建符號鏈接,而是創(chuàng)建復制。
若需要創(chuàng)建符號鏈接(需保證你的賬戶有相應的權限),使用mklink.exe,例如:
mklink /d this-link-points-to c:\that-directory
mklink this-link-points-to c:\that-file
允許非管理員用戶創(chuàng)建符號鏈接
Launch gpedit.msc (i.e. the group policy editor) and add the account(s) to Computer configuration\Windows Setting\Security Settings\Local Policies\User Rights Assignment\Create symbolic links.
運行gpedit.msc(組策略編輯器),并增加賬號到:計算機配置\Windows設置\安全設置\本地策略\用戶策略\用戶權限分配\創(chuàng)建符號鏈接。
附原文:Symbolic Links
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。