雖然感覺並沒有什么暖用,但姑且還是寫出來留作紀念好了
Git這種分布式版本控制系統最適合的就是單槍匹馬搞開發的選手,不需要服務器,下載個git和圖形工具,網速快十分鍾就能搞定開始愉快的開發工作。我在搭建gitlab服務器時,查找了許多關於git的使用教程,他們中大多數都是使用命令行來操作,非常的專業,靈活。但git再怎么吹的玄乎完爆SVN,它終究只是一個工具而已,工具首先要滿足需求,第二就是要好用,顯然命令行是沒有圖形界面好用的。
在windows上的圖形工具當然是小烏龜(TortoiseGit)最好用了,Mac則上SourceTree,不過我在mac上用SourceTree總是會有一些奇奇怪怪的小問題,所以我並沒有怎么深入了解它。
第一章 Git的安裝和圖形工具安裝
隨便搜索關鍵詞“git”,去到git官方網站。下載對應你所用的操作系統的版本,然后安裝,一路下一步就行了,唯一一點需要注意的就是在如下界面時,要選擇第三個選項,這樣你克隆的代碼就不會改變格式了。
安裝好了之后,你隨便找個空地右鍵一下,右鍵菜單里就出現了下面這些神奇的選項
其中git init here是在此創建一個版本庫(創建在哪?你點哪就是哪啊),git gui是git自帶的一個簡易圖形化工具,git bash是命令行工具
雖然介紹了它們三個,但並不會有什么用,如果你堅持覺得命令行用起來更酷炫,更自由,更有范。我承認你贏了
你可以去看廖雪峰老師關於git的教程
安裝TortoiseGit也是如此簡單,下載,安裝,一路下一步,安裝好了之后右鍵,又多了好多東西。
英文的小烏龜用起來爽不爽?當然不爽啦!所以我們可以在TortoiseGit的官網里下載漢化包,變成中文版。
第二章 TortoiseGit的基本操作
當你第一次使用TortoiseGit的時候,首先要確認你的身份,這樣你提交的修改其他成員才知道是誰做出的修改,如果有問題該向誰詢問
確認身份,右鍵-->TortoiseGit-->Setting,在打開的對話框里,左邊選git,右邊就會出現寫用戶名和郵箱的地方
這是已經設置好的狀態
創建版本庫
當你確認了自己的時,先選擇一個自認為合適的目錄作為工作區,例如下圖中我選擇了I:\我的工作區 作為我的工作區
於是我在該目錄下點擊右鍵,選擇“git在這里創建版本庫”
出現以下界面,然后點擊確定。
於是該目錄就變成版本庫了
在介紹基礎操作之前,我們要理清幾個概念,緩存區,本地版本庫,遠程版本庫。
當你對工作目錄下的文件修改,添加,刪除時,這些操作都是存在於緩存區,你可以隨時通過右鍵TortoiseGit里的還原來回到你未改動過的文件,但當你右鍵提交到了版本庫之后,你的修改就被存入本地版本庫中,這時你只能回溯到之前提交的版本
提交過后的修改只是存在於你本地的版本庫,想讓其他開發者能看到你的修改,就必須通過右鍵的git同步,將修改推送到gitlab上,其他開發者才能看到你的修改。
通過一次場景模擬來介紹git的使用
小明是一名剛入職的新員工,入職第一天,組長找到管理員讓其為小明注冊了gitlab(一種git服務器)的賬號。並且組長將小明的賬號添加到了gitlab項目組的名單里
小明按照使用手冊上的指示登錄了gitlab后,找到了他要開發的工程,復制了該工程的路徑,又按照使用手冊中的提示,將工程的版本庫克隆到了他工作用的電腦的工作區目錄下。可以開始工作了。
打開了克隆下來的版本庫里面的文件,小明開始工作
他輸入了好幾十行的代碼,感覺很滿意,於是保存了一下,出去吃午飯了
吃完午飯回來,小明感覺之前好幾十行的代碼寫的根本沒有任何意思,但刪起來實在是太麻煩了,於是他在保存的文件上右鍵選擇還原
文件就回到了修改之前的樣子
接着小明又寫了好幾千行的代碼,仔細檢查過后,他覺得寫的很好,不用修改了,便保存了。
之后在空白處右鍵點擊提交到當前分支master。
並且對此次修改添加了描述,然后提交了
小明覺得非常滿足,於是把自己的修改推送到gitlab上。然后收拾東西下班了
第二天剛到公司,組長過來跟小明說他昨晚的提交的代碼與上面的銜接不是非常完美,所以要小明修改一下,小明決定倒退回兩個版本之前,從新編寫。於是他右鍵文件選擇追溯
選擇切換/檢出到了ID4的版本
小明並不需要原來的版本了,所以選擇了覆蓋當前分支,這樣就不會出現多個分支了
再打開了一看,文件已經回到了前兩個版本之前了
小明又可以愉快的工作了。
后記:小明的組長看到小明的工作記錄之后問他道:“你為什么選擇覆蓋已存在的分支,而不是選擇創建一個新的分支呢?這樣萬一你回滾之后后悔了不是還可以切換回原來的分支嗎?”
小明答曰:“我並不知道什么叫分支。”
組長決定下一周給小明的獎金減少到三百塊,並且寫了一篇《git的進階使用》交給小明。
轉自 http://blog.csdn.net/qq_25144527/article/details/46235793