Git安裝、全局配置和常用命令(全)

1、安裝 Git

在你開始使用 Git 前,需要將它安裝在你的計算機上。 即便已經安裝,最好將它升級到最新的版本。 你可以通過軟件包或者其它安裝程序來安裝,或者下載源碼編譯安裝。

1.1 在 Linux 上安裝

如果你想在 Linux 上用二進制安裝程序來安裝 Git,可以使用發行版包含的基礎軟件包管理工具來安裝。 如果以 Fedora 上爲例,你可以使用 yum:

$ sudo yum install git

如果你在基於 Debian 的發行版上,請嘗試用 apt-get:

$ sudo apt-get install git

要了解更多選擇,Git 官方網站上有在各種 Unix 風格的系統上安裝步驟,網址爲 http://git-scm.com/download/linux。

1.2 在 Mac 上安裝

在 Mac 上安裝 Git 有多種方式。 最簡單的方法是安裝 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系統中,在 Terminal 裏嘗試首次運行 git 命令即可。 如果沒有安裝過命令行開發者工具,將會提示你安裝。

如果你想安裝更新的版本,可以使用二進制安裝程序。 官方維護的 OSX Git 安裝程序可以在 Git 官方網站下載,網址爲 http://git-scm.com/download/mac。

Figure 7. Git OS X 安裝程序.

你也可以將它作爲 GitHub for Mac 的一部分來安裝。 它們的圖形化 Git 工具有一個安裝命令行工具的選項。 你可以從 GitHub for Mac 網站下載該工具,網址爲 http://mac.github.com。

1.3、在 Windows 上安裝

在 Windows 上安裝 Git 也有幾種安裝方法。 官方版本可以在 Git 官方網站下載。 打開 http://git-scm.com/download/win ,下載會自動開始。 要注意這是一個名爲 Git for Windows的項目(也叫做 msysGit),和 Git 是分別獨立的項目;更多信息請訪問 http://msysgit.github.io/ 。

另一個簡單的方法是安裝 GitHub for Windows。 該安裝程序包含圖形化和命令行版本的 Git。 它也能支持 Powershell,提供了穩定的憑證緩存和健全的 CRLF 設置。 稍後我們會對這方面有更多瞭解,現在只要一句話就夠了,這些都是你所需要的。 你可以在 GitHub for Windows 網站下載,網址爲 http://windows.github.com。

1.4、從源代碼安裝

有人覺得從源碼安裝 Git 更實用,因爲你能得到最新的版本。 二進制安裝程序傾向於有一些滯後,當然近幾年 Git 已經成熟,這個差異不再顯著。

如果你想從源碼安裝 Git,需要安裝 Git 依賴的庫:curl、zlib、openssl、expat,還有libiconv。 如果你的系統上有 yum (如 Fedora)或者 apt-get(如基於 Debian 的系統),可以使用以下命令之一來安裝最小化的依賴包來編譯和安裝 Git 的二進制版:

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

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

爲了能夠添加更多格式的文檔(如 doc, html, info),你需要安裝以下的依賴包:

$ sudo yum install asciidoc xmlto docbook2x
$ sudo apt-get install asciidoc xmlto docbook2x

當你安裝好所有的必要依賴,你可以繼續從幾個地方來取得最新發布版本的 tar 包。 你可以從 Kernel.org 網站獲取,網址爲

https://www.kernel.org/pub/software/scm/git

或從 GitHub 網站上的鏡像來獲得,網址爲

https://github.com/git/git/releases

通常在 GitHub 上的是最新版本,但 kernel.org 上包含有文件下載簽名,如果你想驗證下載正確性的話會用到。

接着,編譯並安裝:

$ tar -zxf git-2.0.0.tar.gz

$ cd git-2.0.0

$ make

$ ./configure --prefix=/usr

$ make all doc info

$ sudo make install install-doc install-html install-info

完成後,你可以使用 Git 來獲取 Git 的升級:

$ git clone git://git.kernel.org/pub/scm/git/git.git

2、全局設置用戶名郵箱配置

2.1 查看git配置信息

git config --list

2.2 查看git用戶名

git config user.name

2.3 查看郵箱配置

git config user.email

2.4 全局配置用戶名

git config --global user.name “nameVal”

2.5 全局配置郵箱

git config --global user.email “[email protected]

3、git常用命令

3.1 初始化倉庫

git init

3.2 查看倉庫的狀態信息

git status

3.3 將文件加入暫存區

  1. 將單個文件加入暫存區

    git add 文件名

  2. 將所有文件加入暫存區

    git add .

3.4 提交暫存區到本地倉庫

git commit -m <message>

3.5 查看日誌

git log commit。

可以看到什麼時間什麼人提交了一個什麼commit

3.6 回退文件

已經add了一個文件,但不應該提交此文件,在commit之前我們可以輸入以下命令:

git reset 文件名

3.7 恢復之前文件提交狀態

加入你第4次提交了項目文件,但是發現第四次提交項目文件有問題,想回退到第三次項目提交的文件,那該怎麼辦呢?找到第三次commit的ID,然後通過git reset即可。命令如下:

git reset

此時使用git log會發現第四次提交的記錄消失了。

3.8 查看所有的操作記錄

git reflog

可以查到使用git log查不到的提交記錄。(可以查看到上一個指令介紹中的第四次提交記錄)
git log 與 git reflog顯示的commitID的哈希值不一樣,但其實是一樣的。因爲哈希值的前7位就可以鎖定哈希值了,所以你輸全稱和前7位是一樣的。

3.9 git reset模式

  • –hard:不保存所有變更,所有一切都會反原之前commit ID對應的狀態(常用)
  • –soft:保留變更變更內容處於Staged
  • –mixed:保留變更且變更內容處於Modeified,這個是get reset後面的默認

3.10 分支

通常我們家master做爲主分支,

  1. 創建新的分支:

    git checkout -b <name> <template>

    如果template不是本地的,是遠程的,則需要加個origin。

    git checkout -b <name> origin <template>

    第一個參數name是建立的分支名,第二個參數指以哪個分支或者commit爲模版,第二個參數不填,以當前分支爲模版。加入我們以當前分支爲模版,新切一個分支,新分支的commit記錄會繼承模版分支,但切完分支之後,新分支的改動和模版分支不再有關係。

  2. 切換分支:

    git checkout 分支名

  3. 查看所有的分支(本地):

    git branch

    其中高亮的條目代表我們當前所處的分支。

3.11 合併

合併其它分支的變更,並不是分支的內容哦。

git merge

3.12 遠程操作

  1. 下載遠程倉庫至本地

    使用遠程倉庫作爲中央倉庫來管理所有的分支。
    在遠程倉庫github或gitee中創建一個倉庫,在創建倉庫完成後複製下載鏈接,分別將遠程倉庫下載到本地,執行命令:

    git clone

    會發現電腦出現了這個倉庫的文件夾。

  2. 本地分支的commit推送至遠程倉庫

    使用git push將本地創建的分支br-a推送至遠端會發現無法推送,提示我們當前分支br-a沒有上流分支,它是指bc-a僅存在你的本地,而遠端沒有這個分支。爲了推送這個分支,並將遠端分支設置爲上流分支,可以使用如下命令:

    get push --set-upstream origin br-a

    其中–setup-stream是指設置上流分支,origin是指遠端倉庫。所以上述命令的意思是指將遠程倉庫的br-a分支作爲本地br-a分支的上流分支。我們到github或gitee上可以看到有兩個分支:master、br-a。

    將本地推送變更推送至遠端:

    git push

    簡單總結下,如果分支是本地新切的,沒有設置上流分支,則需要使用get push --set-upstream先設置上流分支,之後的commit都可以通過git push進行提交。

  3. 拉取遠程倉庫信息

    • 把遠程倉庫的分支信息拉取到本地倉庫(只是獲知遠程倉庫信息)

      git fetch

    • 查看本地倉庫(只展示本地的fetch,看不到遠程倉庫分支信息)

      git brach

    • 切換新分支(本地不存在的新分支)

      git checkout br-a(遠程倉庫分支名)

      可以順利的切換出br-a。此時的br-a也是本地的,只不過模版分支來自遠程倉庫。

      注意:如果不先git fetch的話,git checkout br-a 這條指令是沒用的。

      此時本地切的分支本身就來自遠程倉庫,所以不需要設置遠程的上流分支。

    • 爲什麼需要fetch機制呢?

      每次check out的時候,直接去遠程倉庫檢測,是否有該分支不行嗎?爲什麼要設置fetch機制呢?在我們使用git的絕大數場景下,git都是在本地切換切去,只有在團隊協作時才需要和遠程倉庫交互,所以每次check out都檢測遠程倉庫,這無疑是一件很浪費網絡資源的事。

3.13 git pull

git pull是將遠程的上流分支的內容與本地分支merage,所以git pull等效於先fetch再自動merge,是一種便捷的方式。

3.14 變基(Rebase)

rebase重新排列base,base指的是commit。對於這塊,網上很多文章,可以去網上找下,很容易理解的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章