Git 倉庫

我的bug寫的太好了發表於2018-11-22

GIt 傳輸協議

  1. 本地協議
    $ git clone file:///opt/git/project.git
    優點 : 可以直接使用檔案系統的許可權,和網路許可權。
    缺點:共享檔案系統比較難配置,協議並不保護倉庫避免意外的損壞

  2. HTTP 協議
    $ git clone https://example.com/gitproject.git
    優點:可以使用 使用者名稱/密碼授權, HTTP/S 協議被廣泛使用,一般的企業防火牆都會允許這些埠的資料通過
    缺點:架設 HTTP/S 協議的服務端會比 SSH 協議的棘手一些

  3. SSH 協議
    $ git clone ssh://user@server/project.git
    優點:SSH 架設相對簡單,SSH 協議很高效,在傳輸前也會盡量壓縮資料,傳輸資料都要經過授權和加密
    缺點:SSH 協議的缺點在於你不能通過他實現匿名訪問,不利於開源

  4. 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

客戶端配置選項

  1. 修改編輯器 [ vim emacs ]
    $ git config --global core.editor emacs
  2. 修改提交(commit)的預設資訊
    $ git config --global commit.template ~/.gitmessage.txt [.gitmessage.txt 定義內容]
  3. 一頁顯示所有內容
    $ git config --global core.pager ''
  4. 回車和換行問題
    $ git config --global core.autocrlf true [ window linux 聯合開發 ]
    $ git config --global core.autocrlf input
    $ git config --global core.autocrlf false [ 僅在windos下 開發]

服務端選項

  1. push 檢測 有效性以及 SHA-1 檢驗和是否保持一致
    $ git config --system receive.fsckObjects true
  2. 禁止 push -f 強制更新
    $ git config --system receive.denyNonFastForwards true
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章