版本控制系統 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的一些基本操作就講完了,關於其他的一些分支管理、標籤管理等就之後用到的時候再做補充了。