SmartGit令人驚豔的LFS鎖定功能

我用過幾種GIT客戶端程式, 從tortoiseGit, GitEye, gitkraken,SourceTree,GitHub Desktop, 都長期用過, 但老實說我只用基本功能,因此看不出來差異在哪, 也不在意哪種用戶端程式好或不好.

直到最近,公司有個需求,要版控"機構部門的圖檔",這原本是PLM宏大系統的功能(整合ERP,文件管制), 但…廠商報價後,就GG了.

於是我想自己找解決方案, 能滿足版控, 又要能滿足檔案鎖定功能, 也參考過網路力推,能管控圖檔的 https://www.perforce.com,

perforce 能版控,也能鎖檔案, 甚至細心列出git,svn,與自身產品的差異(當然是老王賣瓜了)
https://www.perforce.com/blog/vcs/git-vs-svn-what-difference
如果有預算, 我也建議圖檔管控應當要用perforce.

但我個人還是想要用git這個比較熟悉,簡單,無複雜系統的工具.
那問題來了,雖說git的LFS可以進行大檔案版本控管與鎖定,但客戶端工具程式還沒找到好用上手的,

直到SmartGit(20.1版以上)現世,這工具能針對檔案進行直覺的"鎖定", 就好像用檔案總管一樣,能讓麻瓜容易上手.
雖說tortoiseGit也可以在客戶端就鎖定檔案,但整合度實在差太多了, 很不推薦.

Git檔案被william鎖定了

不囉唆,寫心得

  • 確認Git伺服器是否援Git LFS 2.0
    我使用的gitblit 1.9.3 雖然支援LFS,但不是LFS 2.0就無法鎖定檔案,
    慘阿,只好先用吉茶測試
  • 建立/克隆專案Repository,並且確認那些要進行LFS管控
#執行cmd, 到專案Repository目錄執行
git lfs install
git lfs locks --local
git lfs locks --verify
## 設定那些檔案需要進行LFS管控
git lfs track *.exe --lockable
git lfs track *.zip --lockable
...
若執行 git lfs locks --verify 出現錯誤, 有可能是Git伺服器不支援LFS鎖定功能
  • 修改專案Repository設定
#修改.git\config 以下設定若沒有就自行新增
[lfs "https://server/repo.git/info/lfs"]
    ...
    locksVerify = true
#"https://server/repo.git/info/lfs" 為 remote URL,加上/info/lfs
  • 專案啟用LFS檔案鎖定功能
SmartGit->Edit->Preference->Low-level Properties
設定 
status.lfs.locks = true

#也可以設定定期檢查其他人是否有鎖定檔案的時間(預設30分太久了)
backgroup.fetch.delay = 600
#改成每5分鐘查看一次
  • SmartGit背景檢查並且更新LFS最新狀態
SmartGit->Edit->Preference->Backgroup Command->detect remote changes
設定
當專案Repository沒使用的時候, 或是已設定我的最愛的專案Repository 需要定期檢查LFS狀態

#若沒有設定,則不會自動更新狀態, 會無法得知其他人是否鎖定檔案

SmartGit 一套單機版最便宜約100美金左右