1. 程式人生 > >git 命令列版本的使用以及相關linux命令

git 命令列版本的使用以及相關linux命令

1、安裝git

2、cd 切換目錄到你的專案根目錄下(專案根目錄,懂什麼意思吧?)

3、在專案的根目錄下,使用git init命令建立該專案對應的git初始化配置檔案(該專案對應的git初始化配置是在專案根目錄下的隱藏目錄.git下)

4、使用git config 配置簽名(即作者名與作者郵箱,這樣在git本地庫中就可以知道是誰提交的),有兩種情況:

注意:(1)與(2)必須存在至少一個。當(1)與(2)共存時,優先使用(1)中的簽名。如果沒有(1),則使用(2)中的簽名

(1)基於當前專案的簽名

在專案根目錄下使用兩條命令設定簽名

      git config  user.name  作者名

      git config user.email   作者郵箱

通過這兩條命令設定完簽名,之後在該目錄下新增/修改的檔案都會被標識為  這個簽名,即

其中 tom_pro是我設定的作者名,[email protected]是我隨意設定的郵箱,這兩者構成了Author,標識我是提交這段檔案的作者。

標識可以在該專案根目錄下的.git/config檔案中看到。如圖:

(2)全域性簽名

全域性簽名是基於當前作業系統所登入的使用者的。這裡看不同沒關係,繼續往下看。

在任何目錄下使用兩條命令設定全域性簽名:

       git config --global user.name  作者名

       git config --global user.email   作者郵箱

該簽名的意義與(1)中的一樣,只不過是當(1)中的簽名不存在時才會使用全域性簽名。

該簽名在當前使用者的工作目錄下(使用cd ~進入)的.gitconfig檔案中配置。如圖:

5、git把檔案從工作區新增到暫存區中

工作區:我們直接操作的專案檔案所在的區域。

暫存區:暫時儲存git將要提交的檔案。作用在於:可以反悔,撤銷新增。

本地儲存庫:從暫存區中提交檔案到本地儲存庫,此時無法撤銷提交,每次提交到這的檔案都會儲存,只不過是不能版本而已。

這一步的使用:

使用以下命令:

git add  工作區中的檔案

可以把當前專案下的指定檔案新增到git暫存區中。

6.git把檔案從暫存區中提交到本地儲存庫中

使用

git commit 暫存區中要提交的檔案

提交後無法撤銷,會在git中生成一個版本。。該檔案以前就存在的,會變為歷史版本存在,也還是可以訪問到的。

7.檢視git狀態

在專案根路徑下使用git status命令可以檢視當前專案的git狀態, 會提示是否 新建的檔案、修改過的檔案

(1)如果使用git status檢視到的檔案是紅色的,說明工作區的檔案與暫存區的檔案不一致。。即:可以使用git add filename  把檔案從工作區新增到暫存區。

(2)如果使用git status檢視到的檔案是綠色的,說明工作區的檔案與暫存區的檔案一致,但暫存區檔案與本地庫指標當前指向的版本不一致。。。即:可以使用git commit filename 把暫存區檔案提交到本地庫中。

8.檢視git日誌

使用git log可以檢視日誌,日誌其實就是之前每次commit的資料,不過有個缺點,就是日誌太長了。
使用git  reflog 檢視日誌不僅可以更簡短,而且還可以檢視到head指標,以此來知道怎麼訪問歷史版本。

9.版本回退與前進版本

先講講reset的引數,有三個hard  soft  mixed

soft:僅僅移動HEAD指標,不會對暫存區、工作區進行任何操作。 

mixed:會移動HEAD指標,一會清除暫存區,不會影響工作區。

hard:移動HEAD指標,清除暫存區,把指定版本的資料覆蓋工作區。

《1》使用索引值

          (1)git reset --hard  索引值

              作用:索引值指定版本資料會覆蓋原來本地檔案,並清空暫存區。

                根據索引值既可以回退,也可以前進。

            (2)git reset --soft  索引值

《2》使用^符號

           git reset --hard HEAD^     表示從當前版本回退一個版本

           git reset --hard HEAD^^     表示從當前版本回退兩個版本

           也就是說,有多少個^,就表示從當前版本回退幾個版本

《3》使用~符號

        不用像^一樣根據^的數量來指定回退多少個版本,通過~符號加數字就可以指定回退多少版本。

        git reset --hard HEAD~3  表示從當前版本回退3個版本

        git reset --hard HEAD~4  表示從當前版本回退4個版本

    建議:還是用索引值方式方便,另外兩種方式還是要到日誌中數一下要幾個版本....

10.刪除檔案找回

前提:被刪除檔案在上一個版本已經被提交到本地庫中了,如果沒有達到該前提,則不能找回了。

回退到上一個版本就OK了,這樣就可以找回上個版本的東西,不過要小心當前工作區被覆蓋

11.和本地庫比較檔案(增加了什麼,刪除了什麼)

git diff filename    表示 工作區中filename檔案與暫存區中的filename檔案進行比較,會顯示出哪些行是增加的,哪些行是刪除了的。

git diff HEAD^ filenme  表示與本地庫中相應版本比較,HEAD^的作用就不解釋了,會顯示出哪些行是增加的,哪些行是刪除了的。

12、分支操作

(1)建立分支

git branch 分支名

使用上面的命令則會建立名字為指定名的分支(其實就是複製一份倉庫裡面的所有版本資料到該分支,無論怎麼操作這個分支,都不會影響原來的master分支)

(2)檢視所有分支

git branch -v

如圖所示,分支名前面帶*號則表示當前所處的分支是哪個。

(3)切換分支

git checkout 分支名

切換到指定分支名的分支,沒啥好說的。

(4)合併分支

首先,當前分支要切換到要被合併的分支上。

比如,有master與hot_fix兩個分支,其中,hot_fix要合併到master上,那麼當前分支就需要切換到master,合併後hot_fix分支就消失了。其實原理與提交到本地庫類似。

命令:git merge 分支名

比如:使用git merge hot_fix,當前處於master分支,那麼意思就是把hot_fix分支的內容合併到master上

(5)解決合併衝突問題

什麼是合併衝突?意思就是,合併的兩個分支中,同一個檔案的同一行在不同分支中都被修改了,此時就會出現合併衝突。

當出現衝突時,衝突所在位置的檔案會變為如下圖所示:

這就需要使用者自己手動選擇或者修改自己想要哪個分支的了(別忘了把git衝突標記符號刪了,即<<<<<<<< =========>>>>>>>>)

具體解決衝突的步驟如下:、