1. 程式人生 > >版本控制系統 git 之基礎講解

版本控制系統 git 之基礎講解

很久之前就用起了git,但都是用在從github上clone專案上,或者hexo的部落格提交上,直到前段時間加入了學校的技術中心,需要用git進行檔案管理,才去瞭解了下git的具體使用方式。

什麼是git

Git是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。它與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援。它不僅僅是個版本控制系統,它也是個內容管理系統(CMS),工作管理系統等。

工作流程

一般來說,git的工作流程分為以下幾步

  • clone Git 資源作為工作目錄
  • 在克隆的資源上新增或修改檔案  
  • 如果原始檔被修改了,可以進行資源更新 
  • 提交前檢視修改
  • 提交修改
  • 修改完成後,如發現錯誤,可以撤回提交併再次修改後重新提交

基本使用方式

建立倉庫

首先建立一個資料夾,在資料夾中右鍵,git bush,鍵入

git init

執行完該命令後,會在當前目錄下生成一個.git目錄。

然後我們新建一個readme.txt檔案,使用Notepad++開啟,隨便輸入一些內容。

然後執行下面步驟

$ git add readme.txt
$ git commit -m "first"

這裡,git commit -m後面的內容指的是對本次提交的說明,可以輸入任何內容。

版本控制

我們先進行幾步這樣的操作,將剛才建立的readme.txt裡的內容修改,然後執行提交操作,-m後面的內容就寫當前次數,重複兩遍差不多。這樣,我們就提交了三個版本,版本1: first, 版本2: second ,版本3: third。當然,在實際工作中,並不可能記得每次修改的內容,因此,我們可以用以下命令檢視。

$ git log

如果我們想退回上一個版本,那麼我們可以輸入

$ git reset --hard HEAD^

然後去檢視一下,發現文字內容變為了第二次提交時的內容,再用git log檢視,確實回退到了第版本二,那麼,這是不是意味著我們退不回去了呢?當然不是,如果你知道版本3的commit id的話,還是可以返回的。commmit id?那是啥?就是在你輸入 git log 時,顯示的一大串內容中,每一段 commit 後面的那串字元。

$ git reset --hard id

輸入上面的內容,就可以退回去了,這裡 id 不一定要全輸完,只需要輸如一部分即可,Git會自動去找,但也不能太短,因為Git可能會找到多個版本號,就無法確定是哪一個了。

同時,git還提供了一個命令

$ git reflog

用來記錄你的每一次命令,同時,使用該命令時,也會顯示被修改的版本的 commit id。

遠端倉庫

前面講的倉庫是屬於本地的,但是當這個專案是團隊協作的時候,我們就需要遠端倉庫了。我們可以在github上建立一個倉庫,輸入本地倉庫的資料夾名,根據GitHub的提示,在本地倉庫下執行命令:

$ git remote add origin [email protected]:xxxxx/xxx.git

新增後,遠端庫的名字就是origin,這是Git預設的叫法,也可以改成別的,但是origin這個名字一看就知道是遠端庫。

下一步,就可以把本地庫的所有內容推送到遠端庫上:

$ git push -u origin master

推送成功後,可以立刻在GitHub頁面中看到遠端庫的內容已經和本地一模一樣,在之後的操作中,只需要輸入以下命令即可

$ git pull
$ git add .
$ git commit -m ""
$ git push origin master

總結

這樣,關於git的一些基本操作就講完了,關於其他的一些分支管理、標籤管理等就之後用到的時候再做補充了。