1. 程式人生 > >關於Git和Git的常用命令

關於Git和Git的常用命令

一.Git(分散式管理版本控制系統)

       Git(讀音為/gɪt/。)是一個開源的分散式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。 [1] Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。

         Git 是用於 Linux核心開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援(wingeddevil注:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和伺服器端還是有互動的。),使

原始碼的釋出和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大專案來說自然很重要。 Git 最為出色的是它的合併跟蹤(merge tracing)能力。

特點:

        分散式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。

功能:   

        1、從伺服器上克隆完整的Git倉庫(包括程式碼和版本資訊)到單機上。

        2、在自己的機器上根據不同的開發目的,建立分支,修改程式碼。

        3、在單機上自己建立的分支上提交程式碼。

        4、在單機上合併分支。

       5、把伺服器上最新版的程式碼fetch下來,然後跟自己的主分支合併。

       6、生成補丁(patch),把補丁傳送給主開發者。

     7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有衝突,就通過。

       8、一般開發者之間解決衝突的方法,開發者之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發者提交補丁。

二.Git的常用命令

     1.配置資訊

         git --version(檢視git版本資訊)   

         git config --global user.name/user.email(獲取當前使用者名稱/郵箱) 

     2.登入Git

        git config --global user.name "自己的使用者名稱"

        git config --global user.email "自己的郵箱"

     3.Git工作區倉庫的建立

        進入指定資料夾,使用git  init 命令建立

     4.檔案的提交

     先了解下git的3大區域

     

   1、工作區(working directry)     2、暫緩區(stage index)     3、Git倉庫(

   提交命令:

          git add . (新增所有工作區檔案到暫存區)

          git add filename(新增工作區指定檔案至暫存區)

         git  commit -m "描述語句(解釋檔案/檔案的具體更改)"     (新增暫存區所有檔案到Git倉庫)

         git commit -am "描述語句(解釋檔案/檔案的具體更改)"    (新增工作區修改的檔案到Git倉庫)

 5.檔案的 回退版本,撤銷,刪除操作等

       1.回退版本:

       格式1: git reset --hard HEAD^        解釋:          HEAD表示當前最新版本          HEAD^表示當前最新版本的,  上一個版本          HEAD^^表示當前最新版本的, 前兩個版本, 依次類推          HEAD~1 表示當前最新版本的,  上一個版本          HEAD~2 表示當前最新版本的, 前兩個版本, 依次類推             格式2: git reset --hard 版本號          注意: 版本號很長, 指定的大於等於7未即可

       2.撤銷修改        撤銷工作區:(本質將暫存區的檔案覆蓋工作區檔案)        格式:git checkout 檔名

撤銷暫存區:

       格式: git reset HEAD 檔名 #將暫存區的程式碼撤銷到工作區         git checkout 檔名   #撤銷工作區程式碼

       注意:           只能撤銷工作區, 暫存區的程式碼, 不能撤銷倉庫區的程式碼        撤銷倉庫區的程式碼就相當於回退版本操作

       3 .刪除檔案:         格式1:rm filename  #直接刪除磁碟檔案,linux指令         格式1:git rm filename  #刪除暫存區檔案                 如果誤刪,撤銷:        格式1: rm 檔名 #誤刪,未提交          git checkout filename--檔名 #撤銷                 格式2: git rm 檔名 #誤刪        恢復: git reset --hard HEAD^  #撤銷

6.檔案的狀態,以及版本狀態與對比查詢

   1.檔案狀態查詢命令:

     git  status(檢視檔案狀態狀態)

     檔案狀態分為四中:

       untracked(未被跟蹤的)

       modified(檔案已經修改,為新增到暫存區的)

       staged (在暫存區未提交到版本庫的)

       commitited(git版本庫中)

    2.版本狀態查詢命令:

      git log (檢視版本資訊,提交時間等等)

      git reflog(檢視所有的版本資訊,包括刪除的版本)

    3.對比版本       對比版本庫與工作區程式碼差異:       格式:git diff HEAD -- xxx.py       格式解釋: HEAD表示版本庫,    xxx.py表示工作區       出現綠色加號(+) 表示工作區相對於版本庫增加的程式碼

      對比版本庫:       格式: git diff HEAD  HEAD^ -- login.py       HEAD: 表示當前版本       HEAD^:表示上個版本       login: 表示對比的檔案

三.Git的遠端簡單操作

(1) 遠端倉庫相關命令

檢出倉庫:$ git clone [url](倉庫的地址)    (將倉庫的檔案下載到指定的資料夾,即本地工作區)

檢視遠端倉庫:$ git remote -v

新增遠端倉庫:$ git remote add [name] [url]

刪除遠端倉庫:$ git remote rm [name]

修改遠端倉庫:$ git remote set-url --push [name] [newUrl]

拉取遠端倉庫:$ git pull [remoteName] [localBranchName]

推送遠端倉庫:$ git push [remoteName] [localBranchName]

(2)分枝操作

   git branch(檢視本地分枝)

   git branch -r (檢視遠端分枝)

   git branch [newname](建立一個名字未newname的分枝,HEAD不會自動指向此分枝)

   git checkout name (切換分枝)

  git branch -d name(刪除分枝,不能刪除當前指向的分枝)

  合併分支:git merge [name] ----將名稱為[name]的分支與當前分支合併

  建立遠端分支(本地分支push到遠端): git push origin [name]

  刪除遠端分支: git push origin :heads/[name] 或 [git push origin :[name] 

------------------------------------------------------------文章寫的比較匆忙,後期將完善內容------------------------------------------------------------