三十分鐘拿Git幹活
1.為什麼使用git?
a) 非常有利於自己知識和經驗的積累
b)能夠通過git展示工作經驗和分享交流自己的專案
c)能夠通過git管理團隊和專案
2.為什麼選git?
a)好用
b)無縫的提交到github等平臺
3.git和github的關係?
git是一個版本控制工具
github是一個用git做版本控制的專案託管平臺。
4.git 幾個重要的概念
這裡類比一下
倉庫(書店):所有版本的程式碼都在倉庫(所有版本的《金瓶梅》都在書店裡)
分支(書架):不同功能功能的程式碼存放的地方(我把《金品梅》插圖版和古裝版放在不同的書架,這樣可以互不干擾)
提交(書):每一個版本的程式碼 (《金瓶梅》插圖版 第一版印刷,第二版印刷……)
5.核心重點基礎內容怎麼玩
官網:https://git-scm.com/ git是可以裝在自己電腦或者伺服器的,不墨跡開整
1.新建一個資料夾helloGit,進入
2.右鍵gitBash,建立倉庫,
git init
3.建立一個a.txt,開啟裡面內容隨便造。
4.輸入
git status
看一下git的狀態,這個命令牛逼之處就是告訴你接下來該怎麼做,人家說了你沒把a.txt交給倉庫去管。
5.將所有檔案加入到快取區(相當於你把檔案交給管理員了),
git add .
6.將檔案 提交到倉庫(管理員把你的檔案扔倉庫裡了),
git commit -m `這裡是寫點註釋,省的你不知道自己提交了啥內容,這是第一次提交`
這樣一次提交就完成了,
7.開啟a.txt 隨便加點內容,繼續造,然後
git add .
git commit -m `第二次提交`
8.我們看看我們提交了幾個版本,
git log
這裡我們提交的兩次就看到了,而且能看到commit後面的id 。我要想回到第一次提交咋整,
git checkout c0f259e284a27c1871562631bd9753d46f5798bb
開啟a.txt 看看,回到第一個版本了。到現在你已經會了,提交多個版本,回滾到某個版本。我想回到上一個版本老找id忒費事,可以用這個
git checkout -- .
6.說點進階的玩法-分支
大家考慮這麼一個情況,假如你是angularjs開發團隊,你想angular2.0基於angularjs開發,但是有特別大的革命性變化,你說咋辦好?
這時候你看這樣合不合理,我分一部分人負責原angularjs的基礎維護和平滑升級,然後複製一份angularjs讓另外一個團隊進行革命性開發,這樣兩個團隊都不互相干擾,等2.0的功能開發完成了,我再融合到原來的angularjs裡面去。這個就是分支的功能。
1.我先複製一份原來的東西,開一個新的分支
git checkout -b new-fenzhi
我們看看現在有幾個分支,
git branch
大家可以看到這裡有兩個分支,一個master,一個new-fenzhi,
新建b.txt的內容,然後
git add .
git commit -m `我在新分支上糟蹋的`
注意,這時候我們刪除b,我們回到master分支,看看它影響master不,
git checkout master
git log
大家可以看到 根本就沒有影響master,master下是沒有b.txt 我們假設搞完了,把git new-fenzhi的東西合併回master咋整,
git merge new-fenzhi
這樣就合併回去了。
7.說下git和github一起玩。
1.最簡單把github專案搞下來
git clone xxxxx.git
2.提交到github,第一次這麼做
git remote add origin https://github.com/breaddream/helloGit.git
git push -u origin master
這裡注意,如果提示orgin 已經存在,就先把遠端的倉庫刪除再執行,
git remote rm origin
第二次以後這麼做,
git push
8.後續學習
上面這些適合個人開發者,如果你是一個部門主管,那麼你就要會搭建內網git伺服器,因為公司專案有保密性要求,是不可能讓你隨便往git上傳的。如果團隊很小,你自己搭建就ok了進行許可權管理,如果公司已經有一定規模比如100人團隊,就需要有linux程式設計師進行嚴格的許可權管理了,尤其對原始碼有很高保密性要求的公司,甚至員工的修改和操作都會有記錄。有興趣的同學可以試著搭建一個git伺服器供團隊使用。