關於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] 

 

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

  

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