Git(3、設定相關)

2020-08-10 14:22:33

前言:自學筆記整理

目錄

  1. 設定
  2. 協定

1. Git設定

1.1 git設定屬性

  1. git config --list 查閱
    在这里插入图片描述
  2. 允許提交包含混合換行符的檔案
    git config --global core.safecrlf false

1.2 Git ignore 忽略檔案

這裏可查閱所有語言的ignore模板:Git ignore模板

若不購買github的私有倉庫,上傳時需要遮蔽諸如域名、IP、數據庫賬戶密碼等敏感資訊。

vim .gitignore 編輯/新增該檔案,在檔案中新增內容

  • 忽略某個檔案:
    .project
    新增後,該檔案不能被加入暫存區(但可通過force命令強行加入,如下圖)
    在这里插入图片描述
  • 忽略某類檔案:
    舉例,忽略所有exe結尾的檔案
    *.exe
  • 這裏給個Java 的.gitignore檔案範例:
    在这里插入图片描述

1.3 日誌格式化

git log --pretty=format:’%h %ad | %s%d [%an]’ --graph --date=short
在这里插入图片描述

1.4 別名設定

e.g. 設定commit別名爲ci
執行命令:git config --global alias.ci commit
執行後檢視.gitconfig組態檔:
在这里插入图片描述
同樣的道理,我們設定一些其他的別名:
在这里插入图片描述

1.5 憑證儲存

  • HTTP協定(BASH視窗提交)
    憑證交由wincred儲存,後續提交不用重複輸入使用者密碼:
    git config --global credential.helper wincred
  • SSH協定,這個見下文

2. 協定

2.1 本地協定

  1. 克隆本地倉庫
    git clone /d/GitRepositry/cubase
  2. 克隆本地倉庫,不建議使用file://
    git clone file:///d/GitRepositry/cubase.git
  3. 新增遠端倉庫鏈接
    git remote add origin /d/GitRepositry/cubase.git

2.2 Git協定

Git協定

  • 因爲沒有授權機制 機製,一般僅用於只讀,和其他協定一起配合使用
  • 速度是所有協定中最快的
  • 要求開放9418埠

舉例:

  1. 克隆遠端倉庫
    git clone git://server_ip/test.git
  2. 新增遠端倉庫鏈接
    git remote add origin git://server_id/test.git

2.3 HTTP協定

優點:

  • 容易上手,不需要設定金鑰對
  • 走80埠

缺點:

  • 基於超文字協定,數據傳輸效率不高
  • 設定起來比SSH麻煩
  • 需要藉助第三方工具來儲存憑證

範例:

  • 克隆遠端倉庫
    git clone https://github.com/[githubUsername]/test.git
  • 新增遠端倉庫鏈接
    git remote add origin https://github.com/[githubUsername]/test.git

2.4 SSH協定

2.4.1 簡介

SSH: Secure Shell
優點:

  • 非常安全
  • 數據壓縮最大,傳輸速度快

缺點:

  • 需要設定金鑰對(比起http協定稍微複雜一點)

範例:

  • 克隆遠端倉庫,一般寫成簡短的命令
    git clone ssh://[email protected]/[githubusername]/[repositoryname]
    簡寫:
    git clone [email protected]:[githubusername]/[repositoryname].git

  • 新增遠端倉庫的鏈接
    git remote add origin [email protected]:[username]/test.git

2.4.2 生成&設定金鑰對

在这里插入图片描述
看網上同學們都直接這樣用的:ssh-keygen -t rsa -C 「[your email]」
但官方給的是:ssh-keygen -t rsa -b 4096 -C 「[email protected]
這個 -b 是搞毛用的我沒有測試,官網也沒有給出說明,那就當作語法直接用吧

範例:
在这里插入图片描述
這裏沒有直接enter,而是輸入了一個cubase字串,在當前目錄下生成的金鑰對,直接enter則使用預設目錄
我這裏是自測,所以瞎搞搞。
個人建議還是直接使用預設目錄比較好,ssh key的密碼也不要輸入了,這樣明顯更方便。

cubase是私鑰
cubase.pub是公鑰
在这里插入图片描述
在这里插入图片描述

然後把公鑰新增到遠端倉庫中:
在这里插入图片描述
在这里插入图片描述
新增成功如下圖:
在这里插入图片描述

注意:金鑰對需要保管好,最好做個備份

然後使用SSH協定拉取專案
在这里插入图片描述
好,拉取專案被拒絕了。因爲建立公鑰的時候自定義了金鑰檔案
在这里插入图片描述
進入預設目錄:C:\Users\Thinkpad.ssh
建立config檔案,指定私鑰檔案
我這裏把生成的金鑰對,拷貝到了該目錄下,方便統一管理:

Host cubase
	Port 22
	User git
	HostName github.com
	IdentityFile ~/.ssh/cubase

克隆專案的時候注意修改爲config組態檔中的host
在这里插入图片描述
到這裏就差不多了,再pull時也不會提示讓你輸入賬戶密碼了
不過建立金鑰對時,若給金鑰設定了密碼,還是有提示(這個我建議就不給ssh key加密了吧),感興趣的同學可以再搜一下是否在config檔案中可以統一設定