「git?那是什麼玩意兒?」一週以前,你要是這麼問我什麼是git?上面即是個人回答。linux
在進入thoughtworks以前,對於git,我是一無所知。然而,胡老師的一堂課,向我開啓了git的大門。而git,也開始進入了個人生活。
git
後來,我特地查過git這個東西是怎麼來的,原來呀,在早期的時候,linux系統雖然是開源的,但一直是由它的創始者Linux本人收集全世界熱心志願者的代碼,本身手工整合上去的。但是隨着Linux系統的日益壯大,僅僅靠一我的的力量,已經難以維持龐大的代碼庫管理了,並且社區的兄弟們也不滿意啊,憑什麼只由你一我的來管理!咱們不服!!!迫於輿論的壓力,Linus最終選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出於人道主義精神,受權Linux社區無償使用這個版本控制系統。github
原本是一派大好河山,你們一片和諧的使用,但是到了2005年,因爲社區兄弟們牛人彙集,人才濟濟,有些人就動了歪腦筋,開發Samba的Andrew試圖破解BitKeeper的協議(這麼幹的其實也不僅他一個),被BitMover公司發現了(監控工做作得不錯!),因而BitMover公司怒了,要收回Linux社區的無償使用權。編輯器
這可咋整?Linus帶領衆兄弟們給BitMover公司道個歉,低聲下氣的繼續用?門都沒有!Linus這麼自戀,要他低頭,但是太難了。不服輸的他花了兩週的時間,本身用C語言寫了一個版本控制系統,這,就是赫赫有名的Git!什麼叫牛逼,你們本身體會吧。
學習
Git就是這麼橫空出世了,若是不是當年BitMover公司收回了以前的系統使用權,也許咱們如今就見不到Git了。謝謝BitMover。
網站
瞭解完了Git的來歷後,我便開始真正的走入了Git的世界。Try-Git,這是老師給咱們的第一個學習Git的網站,遺憾的是,英文網站-_-!跟着教程走了一遍,呃。。。學的只知其一;不知其二的,直到老師給了咱們中文版的網址,我才真正學會了Git的基本使用。那麼接下來,就給你們分享一下個人學習Git的經驗。atom
在經過git config --global user.name "tom" git config --global user.email tom@outlook.com兩條用戶配置以及git config --global core.editor atom配置好編輯器以後,就能夠進行初步的Git操做了。spa
首先,咱們要作的,是初始化Git庫,使用到的指令是git init。當咱們輸入這個指令以後,系統會在你的目錄下建立一個.git的隱藏目錄。而後,輸入git status指令,咱們能夠查看當前Git的狀態。版本控制
此時,由於沒有任何東西添加進去,因此顯示的是沒有任何東西,此時,咱們能夠往庫裏添加一點東西,用git add demo 命令,咱們能夠添加一個名叫demo的文件進去,只不過,此時的demo文件還只是在暫存區。接下來,咱們可使用git commit -m "my first commit" 來把文件提交到本地的Git庫中,引號裏面能夠寫一些關於此次版本變動的描述信息。提交上去以後,假如你想看看你以前都作了哪些修改,咱們可使用git log命令,來看咱們的git日誌。日誌
接下來,就是要把本地的git庫裏的東西添加到遠程倉庫了,咱們能夠用到這個指令: git remote add origin https://github.com.git,URL裏面你能夠寫本身的GitHub地址。此時,push命令已經準備好要把commit推送到哪裏了,讓咱們輸入git push -u origin master這個命令吧。輸入完成?如今點下回車,咱們的demo文件,就被提交到GitHub上面供全部人使用了。
要是過了一段時間,有一些人加入了個人GitHub工程,並對個人代碼進行了修改提交,咱們能夠檢查並拉取遠程Git庫中的更改,輸入git pull origin master看一下吧。誒?他們都作了什麼修改?我怎麼知道呢?輸入git diff HEAD ,你想了解的都有了。假如你想看看暫存區的改變,同樣可使用diff命令,讓咱們輸入git diff --staged 來看一下嘍。假如不想要暫存區裏的東西的話,git reset 命令,能夠幫咱們解決困擾。想回到以前的狀態嗎?用git checkout -- <target>命令,熟悉的東西又回來了。
如今,讓咱們來研究如下分支吧。假如咱們正在研究一種功能,或者修復bug時,一般會建立一個分支,當完成後,再把這個分支合併到主分支上。git branch clean_up,能夠幫助你建立一個分支。而後輸入git checkout clean_up切換到這個分支上,並進行你想要的操做。接下來,輸入git checkout master回到主分支。而後就是合併了,用git merge clean_up來合併他們吧。
合體以後,原來的clean_up分支就能夠不要了,輸入git branch -d clean_up來刪除吧。最後最後的最後,就是提交了。來吧,git push,將你的成果推送上去吧。
到此,今天的Git小課堂,就結束了,我也初步掌握了Git的一些基本的用法,接下來,就要勤加練習,靈活運用Git了。