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就是使用這個目錄來跟蹤管理版本庫的。

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM