GIt 傳輸協議
-
本地協議
$ git clone file:///opt/git/project.git
優點 : 可以直接使用檔案系統的許可權,和網路許可權。
缺點:共享檔案系統比較難配置,協議並不保護倉庫避免意外的損壞 -
HTTP 協議
$ git clone https://example.com/gitproject.git
優點:可以使用 使用者名稱/密碼授權, HTTP/S 協議被廣泛使用,一般的企業防火牆都會允許這些埠的資料通過
缺點:架設 HTTP/S 協議的服務端會比 SSH 協議的棘手一些 -
SSH 協議
$ git clone ssh://user@server/project.git
優點:SSH 架設相對簡單,SSH 協議很高效,在傳輸前也會盡量壓縮資料,傳輸資料都要經過授權和加密
缺點:SSH 協議的缺點在於你不能通過他實現匿名訪問,不利於開源 -
Git 協議 ( 不建議 )
優點: Git 協議是 Git 使用的網路傳輸協議裡最快的
缺點: Git 協議缺點是缺乏授權機制
伺服器建立裸倉庫 ( 加上 --shared git 會自動修改該倉庫目錄的組許可權為可寫 )
$ git init --bare --shared
搭建方法
https://progit.bootcss.com/#_%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84_git
儲存憑證
$ git config --global credential.helper cache [ 憑證存放在記憶體中一段時間 15分鐘 ]
$ git config --global credential.helper store [ 憑證用明文的形式存放在磁碟中,並且永不過期 ]
.gitconfig 配置檔案如下:
[credential]
helper = store --file /mnt/thumbdrive/.git-credentials
helper = cache --timeout 30000
客戶端配置選項
- 修改編輯器 [ vim emacs ]
$ git config --global core.editor emacs
- 修改提交(commit)的預設資訊
$ git config --global commit.template ~/.gitmessage.txt
[.gitmessage.txt 定義內容] - 一頁顯示所有內容
$ git config --global core.pager ''
- 回車和換行問題
$ git config --global core.autocrlf true
[ window linux 聯合開發 ]$ git config --global core.autocrlf input
$ git config --global core.autocrlf false
[ 僅在windos下 開發]
服務端選項
- push 檢測 有效性以及 SHA-1 檢驗和是否保持一致
$ git config --system receive.fsckObjects true
- 禁止 push -f 強制更新
$ git config --system receive.denyNonFastForwards true
本作品採用《CC 協議》,轉載必須註明作者和本文連結