前世今生 Git是誰開發的?為什麼要問這個問題,天朝的我們只管用軟體就是了管誰開發幹啥,好了別急,請聽我一一道來。Git是由李納斯·托沃茲(Linus Torvalds),這個英文名還是查渡娘找到的,英語好難呀!大伙兒有沒有發現這個Linus和Linux(Server操作系統)只有一詞之隔,邏輯好的
前世今生
Git是誰開發的?為什麼要問這個問題,天朝的我們只管用軟體就是了管誰開發幹啥,好了別急,請聽我一一道來。Git是由李納斯·托沃茲(Linus Torvalds),這個英文名還是查渡娘找到的,英語好難呀!大伙兒有沒有發現這個Linus和Linux(Server操作系統)只有一詞之隔,邏輯好的童鞋肯定推論出來了這個Linus和Linux一定有什麼聯繫,沒錯他就是“Linux之父”,你們有沒有發現很多產品的系列總搞個什麼什麼X,比如Mac OS X、ThinkPad X系列、索尼 X系列……總之各種X,還有兩個X的,當然這個你們懂得。還好是放在JavaScript社區,要是放在Linux社區豈不是會被鄙視死,連他都不認識。這裡是有一個故事的,他為何能夠寫出Git,是為了維護Linux內核源碼,最開始是由XXX公司(好吧!又用到X了)免費授權提供版本控制軟體,幾年後那個XXX公司卻要收費了,利納斯很窮的,搞開源能有什麼錢,買不起呀!(當然這些只是調侃)於是他自己寫了一個版本控制軟體,這個軟體就叫Git,我目測Git火了後那個XXX公司也得關門了。其實我想說的是一個人一生搞出一件偉大的事情就已經很不錯了,但是這個人竟然搞出了另一個偉大的事情,實在讓人佩服不已!
Git和Github有什麼區別?通俗點兒講,Git是就是單純的C/S軟體,而Github是一個代碼托管網站它是一個B/S結構,這是本質的區別。當然我們可以通過用Git將我們的代碼放在Github網站上托管,這可和Java和JavaScript區別不一樣。Git和Github是有聯繫的,而Java和JavaScript半毛錢關係都沒有。
基本技能
在此擼主提供兩個Git軟體,一個是msysgit,地址http://msysgit.github.io/ 另一個是Github官網(地址https://github.com/)提供的客戶端,這兩個軟體分別對應一個GUI程式,一個終端命令程式,如圖:
是Github客戶端,安裝完msysgit後滑鼠右鍵。
本文就以Github來演示,其實這兩個軟體幾乎無差別,除界面差別外。
1.我首先在Github網站上創建一個項目名稱為test倉庫,在此也推薦大家註冊自己的Github賬號,這個程式員必需的,就好比電腦是程式員必需的,如下圖:
步驟一:創建一個倉庫
步驟二:倉庫描述
步驟三:創建成功,我們Copy倉庫地址,有ssh和https兩種方式,這裡我就只講https方式
代碼撿出(checkout)之git clone
註:這裡我就只介紹windows環境下的命令方式,實在有些遺憾沒有在Liunx或OS X環境,關鍵是找不到比較優秀的OS X下寫博客的工具,如果園友們有推薦的工具,在此不勝感激。
打開Git Shell,切換到工作目錄(我的工作目錄在C:\A-MyWorkSpace),執行命令:cd C:\A-MyWorkSpace
代碼撿出,執行命令:git clone https://github.com/everyding/test.git 這個鏈接是從步驟三中Copy出來的
執行完後,我們工作目錄下就會多出一個test目錄,預設這個目錄名稱和我們Github上創建的項目名稱一致,當然假如你希望撿出後的根目錄不想叫test,想叫test2,你可以在clone命令後添加一個參數,這個參數就是我們撿出後根目錄名稱,個人覺得這個命令實用性比較強。執行命令:git clone https://github.com/everyding/test.git test2 執行完成後,我們就看到工作目錄下又撿出了一個test2的項目。
添加文件到緩存之git add
我們在test根目錄下,新建一個note.txt文件,然後寫入一段文本:“Hello Github!”,執行命令:git add note.txt這其實就是Git的一種機制,它有個緩存的概念,就相當於是一個記錄工作目錄下所有文件的日誌。
查看你的文件在工作目錄下與緩存的狀態之git status
執行命令:git status 查看工作目錄下的文件與緩存區的狀態信息,從圖中我們看到添加了一個新文件note.txt:
記錄緩存快照之git commit
執行命令:git commit –m “創建一個note.txt文件” 上述 git add其實就是寫入緩存,而 git commit代表實際存儲緩存,需要描述存儲緩存的意義,這就是個快照。
當然它報了個警告,應該是對中文支持不是很好,這個理論上是支持中文的,肯定需要配置什麼,這個園友們可以去找渡娘。這時候我們再次查看工作目錄與緩存狀態,執行命令:git status 它會告訴我們“一個乾凈的工作目錄”,如圖:
將工作目錄緩存推送到遠程倉庫之git push
上述命令只是將我們的操作提交到緩存區了,那麼怎麼同步到我的Github倉庫呢?執行命令:git push 預設被推送到master主分支上了:
我們再看下遠程Github倉庫,就多了一個note.txt文件,並且還有快照信息及提交次數加1,至此我們第一個提交就已經完成。
更新代碼(update)之git pull
切換到工作目錄test2下,這個時候我們發現該工作區還是之前的文件,我們怎麼與Github同步呢?執行命令:git pull
這個時候我們的工作目錄test2下就多了一個note.txt文件。
總結
用過SVN的童鞋,用Git很容易上手,無非就是多了一個緩存區。本篇寫給項目團隊的童鞋,希望對大家有所幫助,另外有寫得不正確或者個人理解歧意,也請園友拍磚!在此感謝大家!
改變自己,從代碼做起!