我用過幾種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伺服器是否援Git LFS 2.0
我使用的gitblit 1.9.3 雖然支援LFS,但不是LFS 2.0就無法鎖定檔案,
慘阿,只好先用吉茶測試
- 安裝git程式,與SmartGit
https://git-scm.com
https://www.syntevo.com/smartgit/
- 建立/克隆專案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
...
- 修改專案Repository設定
#修改.git\config 以下設定若沒有就自行新增
[lfs "https://server/repo.git/info/lfs"]
...
locksVerify = true
#"https://server/repo.git/info/lfs" 為 remote URL,加上/info/lfs
- 啟用LFS檔案鎖定功能,與背景自動更新LFS最新狀態
SmartGit->Edit->Preference->Low-level Properties
設定
status.lfs.locks=true
status.lfs.locks=true
background.fetch.delay=30
background.periodicalRefresh.delay=30
backgroundTasks.idleDelay=30
SmartGit->Edit->Preference->Backgroup Command->detect remote changes
設定
當專案Repository沒使用的時候, 或是已設定我的最愛的專案Repository 需要定期檢查LFS狀態
#若沒有設定,則不會自動更新狀態, 會無法得知其他人是否鎖定檔案
**SmartGit 一套單機版最便宜約100美金左右
結論,這樣的設定很複雜,目前還不好用,若能安裝時就一件設定,那就很好了