git安裝和使用配置


1、簡介

Git是一個開源的分布式版本控制系統,能用於快速高效地處理任何或小或大的項目,它是Linus Torvalds為了幫助管理Linux內核開發而開發的一個源碼開放的版本控制軟件。

 

2、Linux平台安裝git

Git的工作需要調用curl、zlib、openssl等庫,因此在安裝git之前需要安裝這些依賴庫,在Linux系統上使用apt-get或yum命令進行安裝。

(1)命令行安裝

首先安裝庫依賴:

$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
    libz-dev libssl-dev

然后繼續安裝git:

$ sudo apt-get install git

安裝完成后查看git的版本號:

$ git --version

如下正常顯示出版本號,則git安裝完成:

(2)源碼安裝

我們也可以通過Git的源碼進行安裝,先去Git官網下載最新版本源碼,鏈接如下:

https://git-scm.com/download

解壓並安裝下載的源碼包:

$ mv git-2.23.0.tar.gz ~/github/
$ cd ~/github/
$ tar -zxvf git-2.23.0.tar.gz
$ cd git-2.23.0/
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

測試是否已經安裝完成:

$ git --version

運行結果如下所示則安裝完成:

 

3、初次使用配置git

一般在新的系統上,都需要先配置下自己的Git的工作環境,Git提供了一個叫做git config的工具,專門用來配置和讀取相應的工作環境變量,這些環境變量決定了Git在各個環節的具體工作方式和行為,這些變量可以存放在以下三個不同的地方:

a)/etc/gitconfig文件:系統中對所有用戶都普遍適用的配置,若使用git config時用--system選項,讀寫的就是這個文件。

b)~/.gitconfig文件:用戶目錄下的配置文件只適用於當前用戶,若使用git config時用--global選項,讀寫的就是這個文件。

c)當前項目的git目錄中的配置文件(工作目錄中的.git/config文件):這里的配置僅僅對當前項目有效。每一個級別的配置都會覆蓋上層的相同配置,所以.git/config里的配置會覆蓋/etc/gitconfig中的同名變量。

 

(1)用戶信息配置

用戶信息是第一個需要配置的,包括個人的用戶名和電子郵件地址,每次git提交時都會引用這兩條信息:

$ git config --global user.name “xxx”
$ git config --global user.email “xxx@example.com”

使用--global選項,那么更改的配置文件就是位於當前用戶的主目錄下(~/.gitconfig文件),以后所有的項目都會默認使用這里配置的用戶信息,如果想要在某個特定的項目使用其他名字和郵箱,將--global選項去掉,然后重新配置即可,新的配置將保存到當前項目的.git/config文件中。

(2)文本編輯器

Git需要用戶輸入一些額外信息的時候,會自動調用一個外部文本編輯器,默認會使用操作系統指定的默認編輯器,這個編輯器也可以自行設置:

$ git config --global core.editor vim

(3)差異分析工具

設置解決合並沖突時使用哪種差異分析工具,比如改用vimdiff的話:

$ git config --global merge.tool vimdiff

(4)查看配置信息

配置完成后,如果想查看已有的配置信息,可以使用下面命令:

$ git config --list

有時候可能會看到重復的變量名,這說明它們來自不同的配置文件(例如/etc/gitconfig和~/.gitconfig),不過Git最終采用的是最后一個。

另外,還可以直接查看某個環境變量的設定,將特別的名字加上即可:

$ git config user.name

 

4、git-ssh的配置和使用

(1)為什么需要配置公鑰和私鑰

Git使用https協議時,每次pull或push都需要輸入密碼,提交代碼時相當麻煩,使用git協議,然后使用SSH密鑰,可以實現免密登錄。SSH是加密傳輸的,Git可使用RSA加密傳輸算法,RSA要解決的一個核心問題是,如何使用一對特定的數字,使其中的一個數字可以用來加密,而另外一個數字可以用來解密,這兩個數字就是使用Git時遇到的public key(公鑰)和private key(私鑰),例如:從github發過來的是用公鑰加密過的數據,可以使用本地的私鑰來進行還原。

(2)檢查SSH密鑰是否存在

打開終端,輸入下面的命令檢查是否存在現有的SSH密鑰:

$ ls -al ~/.ssh

檢查目錄列表是否已經有SSH公鑰,默認情況下,檢查是否有以下文件:

id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub

如果接收到錯誤提醒”~/.ssh不存在”,可以使用命令行生成SSH密鑰。

(3)生成SSH密鑰

在終端下運行下面命令:

$ ssh-keygen -t rsa -b 4096 -C "xxx@example.com"

運行上面命令時,會提醒用戶輸入一個名字來保存內容,不用管,直接回車,然后會提醒用戶輸入SSH密鑰管理密碼,輸入相應的密碼或者直接回車都可以,最后,公鑰和私鑰會生成並保存到~/.ssh目錄下,可以使用ls命令進行查看。

(4)添加SSH密鑰到ssh-agent

ssh-agent是一種控制用來保存公鑰身份驗證所使用的私鑰的程序,其實就是一個密鑰管理器,運行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其它程序需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程:

啟動ssh-agent:

$ eval "$(ssh-agent -s)"

添加生成的SSH key到ssh-agent:

$ ssh-add ~/.ssh/id_rsa

(5)添加SSH公鑰到github賬號下

在終端下運行命令:

$ cat ~/.ssh/id_rsa.pub

然后將輸出的內容進行復制,復制完成后,按下面步驟添加公鑰到github下:

在任意頁面的右上角,點擊個人資料照片,然后點擊Settings按鈕如下:

在用戶設置的側邊欄中,點擊SSH and GPG keys按鈕,如下:

 然后點擊New SSH key去添加SSH密鑰,如下:

按下圖進行標簽輸入,SSH公鑰復制粘貼,然后添加:

 最后提示需要輸入賬號的密碼,直接輸入即可完成SSH公鑰添加:

(6)測試SSH連接

在終端下,輸入下面命令:

$ ssh -T git@github.com

如果能看到自己的用戶名,並提示已經成功授權,則SSH連接已經成功了,如下運行結果:

 

5、使用SSH URL克隆項目

登錄到github賬號查看倉庫,可以使用SSH URL將項目clone到計算機上,如下:

 在終端上運行命令:

$ git clone git@github.com:Cqlismy/myGitTest.git

要使用SSH URL,必須在計算機上生成SSH密鑰對,並將公鑰添加到自己github賬號,如上所介紹的如何生成SSH密鑰和在Git中添加SSH密鑰,當在命令行中使用SSH URL對遠程倉庫執行git clone、git fetch、git pull或者git push命令時,系統將不會再要求用戶輸入github賬號用戶名和密碼。

 

6、git push提示輸入用戶名和密碼

使用SSH協議對倉庫進行管理能免密登錄,但是,當某些倉庫項目不屬於SSH協議時,例如https協議,當使用git push推送代碼到遠程,就會提示輸入github賬號用戶名和密碼,如下:

下面給出一個Linux下的解決方法:

在用戶根目錄下~/創建文件.git-credentials,並打開編輯,輸入內容:

$ cd ~/
$ touch .git-credentials
$ vim .git-credentials

添加下面內容:

https://username:password@github.com

然后執行命令添加配置:

$ git config --global credential.helper store

查看配置列表是否多了credential.helper變量:

$ git config --list

 

這時,再去執行git push將不再需要輸入github賬號的用戶名和密碼。

 

7、如何刪除git

先找到git的安裝位置:

$ which -a git

然后進入到git所在的目錄:

$ cd /usr/local/bin/

將git進行刪除:

$ sudo rm -rf git*

 

8、小結

本文主要簡單介紹了git的安裝以及git的一些基本配置,並簡單介紹了如何在Git中添加SSH密鑰的辦法,並對在Linux下使用HTTPS協議管理遠程倉庫時git push提交代碼需要輸入github賬號的用戶名和密碼的問題提出了一個解決方法。

 

參考:

https://blog.csdn.net/chinassj/article/details/80323641

https://www.runoob.com/git/git-tutorial.html

https://www.runoob.com/git/git-install-setup.html

http://iissnan.com/progit/html/zh/ch1_4.html

https://segmentfault.com/a/1190000002645623

https://segmentfault.com/q/1010000000118744

https://www.jianshu.com/p/e93edea128a3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM