1. 程式人生 > 實用技巧 >Git 安裝配置及基本操作

Git 安裝配置及基本操作

Git 安裝配置

在使用Git前我們需要先安裝 Git。Git 目前支援 Linux/Unix、Solaris、Mac和 Windows 平臺上執行。

Git 各平臺安裝包下載地址為:http://git-scm.com/downloads


Linux 平臺上安裝

Git 的工作需要呼叫 curl,zlib,openssl,expat,libiconv 等庫的程式碼,所以需要先安裝這些依賴工具。

在有 yum 的系統上(比如 Fedora)或者有 apt-get 的系統上(比如 Debian 體系),可以用下面的命令安裝:

各 Linux 系統可以使用其安裝包管理工具(apt-get、yum 等)進行安裝:

Debian/Ubuntu

Debian/Ubuntu Git 安裝命令為:

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

$ apt-get install git

$ git --version
git version 1.8.1.2

Centos/RedHat

如果你使用的系統是 Centos/RedHat 安裝命令為:

$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

$ yum -y install git-core

$ git --version
git version 1.7.1

原始碼安裝

我們也可以在官網下載原始碼包來安裝,最新原始碼包下載地址:https://git-scm.com/download

安裝指定系統的依賴包:

########## Centos/RedHat ##########
$ yum install curl-devel expat-devel gettext-devel \
  openssl-devel zlib-devel

########## Debian/Ubuntu ##########
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
  libz-dev libssl-dev

解壓安裝下載的原始碼包:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

Windows 平臺上安裝

在 Windows 平臺上安裝 Git 同樣輕鬆,有個叫做 msysGit 的專案提供了安裝包,可以到 GitHub 的頁面上下載 exe 安裝檔案並執行:

安裝包下載地址:https://gitforwindows.org/

官網慢,可以用國內的映象:https://npm.taobao.org/mirrors/git-for-windows/

完成安裝之後,就可以使用命令列的 git 工具(已經自帶了 ssh 客戶端)了,另外還有一個圖形介面的 Git 專案管理工具。

在開始選單裡找到"Git"->"Git Bash",會彈出 Git 命令視窗,你可以在該視窗進行 Git 操作。


Mac 平臺上安裝

在 Mac 平臺上安裝 Git 最容易的當屬使用圖形化的 Git 安裝工具,下載地址為:

http://sourceforge.net/projects/git-osx-installer/

安裝介面如下所示:


Git 配置

Git 提供了一個叫做 git config 的工具,專門用來配置或讀取相應的工作環境變數。

這些環境變數,決定了 Git 在各個環節的具體工作方式和行為。這些變數可以存放在以下三個不同的地方:

  • /etc/gitconfig檔案:系統中對所有使用者都普遍適用的配置。若使用git config時用--system選項,讀寫的就是這個檔案。
  • ~/.gitconfig檔案:使用者目錄下的配置檔案只適用於該使用者。若使用git config時用--global選項,讀寫的就是這個檔案。
  • 當前專案的 Git 目錄中的配置檔案(也就是工作目錄中的.git/config檔案):這裡的配置僅僅針對當前專案有效。每一個級別的配置都會覆蓋上層的相同配置,所以.git/config裡的配置會覆蓋/etc/gitconfig中的同名變數。

在 Windows 系統上,Git 會找尋使用者主目錄下的 .gitconfig 檔案。主目錄即 $HOME 變數指定的目錄,一般都是 C:\Documents and Settings\$USER。

此外,Git 還會嘗試找尋 /etc/gitconfig 檔案,只不過看當初 Git 裝在什麼目錄,就以此作為根目錄來定位。

使用者資訊

配置個人的使用者名稱稱和電子郵件地址:

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

如果用了--global選項,那麼更改的配置檔案就是位於你使用者主目錄下的那個,以後你所有的專案都會預設使用這裡配置的使用者資訊。

如果要在某個特定的專案中使用其他名字或者電郵,只要去掉 --global 選項重新配置即可,新的設定儲存在當前專案的 .git/config 檔案裡。

文字編輯器

設定Git預設使用的文字編輯器, 一般可能會是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的話,可以重新設定::

$ git config --global core.editor emacs

差異分析工具

還有一個比較常用的是,在解決合併衝突時使用哪種差異分析工具。比如要改用 vimdiff 的話:

$ git config --global merge.tool vimdiff

Git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合併工具的輸出資訊。

當然,你也可以指定使用自己開發的工具,具體怎麼做可以參閱第七章。

檢視配置資訊

要檢查已有的配置資訊,可以使用 git config --list 命令:

$ git config --list
http.postbuffer=2M
user.name=runoob
user.email=test@runoob.com

有時候會看到重複的變數名,那就說明它們來自不同的配置檔案(比如 /etc/gitconfig 和 ~/.gitconfig),不過最終 Git 實際採用的是最後一個。

這些配置我們也可以在~/.gitconfig/etc/gitconfig看到,如下所示:

vim ~/.gitconfig 

顯示內容如下所示:

[http]
    postBuffer = 2M
[user]
    name = runoob
    email = test@runoob.com

也可以直接查閱某個環境變數的設定,只要把特定的名字跟在後面即可,像這樣:

$ git config user.name
runoob

git一般工作流程如下:

  • 克隆 Git 資源作為工作目錄。
  • 在克隆的資源上新增或修改檔案。
  • 如果其他人修改了,你可以更新資源。
  • 在提交前檢視修改。
  • 提交修改。
  • 在修改完成後,如果發現錯誤,可以撤回提交併再次修改並提交。

下圖展示了 Git 的工作流程:

Git 基本操作

Git 的工作就是建立和儲存你專案的快照及與之後的快照進行對比。

本章將對有關建立與提交你的專案快照的命令作介紹。

Git 常用的是以下 6 個命令:git clonegit pushgit addgit commitgit checkoutgit pull,後面我們會詳細介紹。

說明:

  • workspace:工作區
  • staging area:暫存區/快取區
  • local repository:或本地倉庫
  • remote repository:遠端倉庫

一個簡單的操作步驟:

$ git init    
$ git add .    
$ git commit  
  • git init - 初始化倉庫。
  • git add . - 新增檔案到暫存區。
  • git commit - 將暫存區內容新增到倉庫中。

建立倉庫命令

下表列出了 git 建立倉庫的命令:

命令說明
git init 初始化倉庫
git clone 拷貝一份遠端倉庫,也就是下載一個專案。

提交與修改

Git 的工作就是建立和儲存你的專案的快照及與之後的快照進行對比。

下表列出了有關建立與提交你的專案的快照的命令:

命令說明
git add 新增檔案到倉庫
git status 檢視倉庫當前的狀態,顯示有變更的檔案。
git diff 比較檔案的不同,即暫存區和工作區的差異。
git commit 提交暫存區到本地倉庫。
git reset 回退版本。
git rm 刪除工作區檔案。
git mv 移動或重新命名工作區檔案。

提交日誌

命令說明
git log 檢視歷史提交記錄
git blame <file> 以列表形式檢視指定檔案的歷史修改記錄

遠端操作

命令說明
git remote 遠端倉庫操作
git fetch 從遠端獲取程式碼庫
git pull 下載遠端程式碼併合並
git push 上傳遠端程式碼併合並