Git入門——本地版本庫操做

做爲一個一直用SVN的傢伙,深深地感到了本身在版本控制工具上的落伍。。。。

首先必須強調的是: Git與Github不是一回事。 Git是目前世界上最早進的分佈式版本控制系統,於2005年被linux創始人Linus開發出來。而Github是一個基於Git爲全球開源項目免費提供git存儲的網站,衆多著名開源項目都遷移至Github~ 而開源時代的來臨也使得軟件行業活力倍增。

做爲分佈式版本控制系統的Git,與傳統的CVS、SVN相比優點明顯。傳統的集中式系統,版本庫集中存放在中央服務器,各個終端必須鏈接至中央服務器進行操做,這致使了許多的不方便。在Git中,沒有中央服務器,每一個終端上都有一個完整的版本庫,安全性大大提高。(在集中式系統中,一旦中央服務器掛掉仍是很棘手的) 不過在使用的時候,Git中也會有臺主機擔任至關於「中央服務器」的角色,它用來做爲主分支方便全部人交換分支並進行整體的版本控制,但它並非必須的。 Git相對於傳統集中式版本控制系統的優點還不只僅在於安全性,其暫存區、分支等概念也帶來了不少的優點。

對於Git的使用,主要有客戶端與命令行兩種方式,我的以爲不必定必須去追求命令行的使用,非Linux環境下已經有了很好有的圖形化界面幹嗎不用?~   
    Github客戶端: https://desktop.github.com/
    Sourcetree: https://www.sourcetreeapp.com/
    不少IDE中也已經集成了Git,好比Visual Studio、Storm系列,Sublime中也有Git插件。  關於客戶端的使用就自行摸索了~
在命令行中使用,Linux天然不用說,而在Windows下主要是使用GitBash工具。本文中的演示也是基於Windows下的Git Bash

進入正題:
  
1、建立版本庫並提交文件: 
        一、建立項目目錄並使用 git init命令將其變成一個Git能夠管理的倉庫:
         如:
                  
        隨後就會在該文件夾下發現隱藏屬性的.git目錄,Git就是使用這個目錄來跟蹤管理版本庫的。

        二、建立文件並添加到倉庫
              我已經在Data-Structure-in-JavaScript文件夾下建立了BinaryTree.js 將其添加到版本庫的步驟以下:
                 
                共需兩步: 一、git add 文件名   對須要提交的文件進行add操做,可屢次進行
                                         二、git commit [-m 提交說明]  對以前add的文件執行提交,說明不是必須選項但強烈建議養成每次提交寫說明的習慣。
             讓咱們把其它文件也加入:
             

              爲何要分兩步操做呢?在Git中有着工做區與暫存區的概念,咱們的項目目錄便是工做區。而在版本庫中,則有暫存區與分支。add操做是將當前修改提交到暫存區,而commit操做則是將暫存區全部的修改提交至分支。
2、與版本庫進行交互
        一、查看當前狀態: git status
            
              此時咱們修改一下BinarTree.js,則會顯示出修改過的文件 使用git diff命令還能顯示修改過的位置
              
            修改過以後再次使用git add與git commit命令提交修改便可
        二、版本回退
              首先可使用git log命令查看歷史記錄。使用該命令會顯示從最近到最遠的提交記錄,每條記錄中顯示版本號、提交者、提交日期以及提交記錄四項。
              
              使用git reset --hard commit_id命令進行回退
              
              只要本次進程沒有關閉,仍是能夠經過一樣的命令回到將來的版本。假如進程關閉以後再想回到將來版本的話,可使用git reflog命令查看命令歷史,從中獲知將來版本的版本號並進行穿梭。重啓Git Bash 操做以下
              
        三、撤銷修改
              可使用git checkout -- file命令撤銷工做區的修改。很容易理解,檢出操做會用最近一次commit或add的文件來覆蓋當前修改過的文件,當前工做區的修改就等同於被撤銷。這裏若是已經添加到了暫存區,則會恢復暫存區的狀態;若是還沒添加至暫存區,則會回到版本庫中的最新版本時的狀態。
              若是修改已經添加至暫存區,則可使用git reset HEAD file操做,將暫存區的修改撤銷,從新放回工做區。此時,即可以使用checkout命令撤銷工做區的修改~
              若是修改已經提交至版本庫。。。 回退版本吧~
         四、刪除文件
              刪除文件的時候,咱們直接在系統中刪除文件。此時,git中便會顯示刪除的文件,此時可使用 git rm 文件名 並提交將文件從版本庫中刪除;或者使用git checkout 文件名命令恢復文件。好比這裏新建了remove.js文件,以後在系統中刪除該文件。
              

總結:
命令 功能
git init 建立版本庫
git add 文件名 將修改添加至暫存區
git commit 將暫存區的全部修改提交至版本庫
git status 查看當前狀態
git log 查看版本記錄
git reflog 查看命令歷史
git checkout -- 文件名 檢出文件以撤銷工做區修改
git reset HEAD file 撤銷暫存區修改,恢復至工做區
git rm 文件名 刪除文件
相關文章
相關標籤/搜索