近期正值冬招,Pornhup公司也招來了幾位實習生,分別是:北大還行靜靜、清華不錯ABCDEF「人稱字母哥」,南翔技校蓋兒「人稱大長腿」
每年實習生來了,一般都有一個實習生培訓,讓實習生們快速的融入Pornhup的工作環境中。
擱在以前大家都是不願意去培訓的,但是這次不僅公司的老王,老張吵著要去培訓這幾位實習生,連公司的女程式設計師都搶著要在實習周去培訓他們。
那麼到底是什麼原因讓這幾位實習生備受公司的重視?因為北大還行嗎?其實是因為來的這幾位實習生,男的是長這樣子的:
女的是長這樣子的
就在公司的各種骨幹吵得熱火朝天的時候,還是管理者人甲出面,解決了這個問題:
各位,我看這幾位高材生,還是我親自出面培訓他們吧,不然顯得咋們Pornhup不重視實習生,所以大家都不要爭了,就這麼愉快的決定了。就由我代替各位直接到前線去親力親為吧。
小甲內心OS:這麼漂亮的妹子,當然是我來了!
人甲:歡迎各位加入Pornhup公司,相信之前的新員工培訓大家已經知道我們公司的規章制度了。那麼咱們也廢話不多說,主要講講咱們公司程式設計師工作中使用的最重要的工具:版本控制工具Git怎麼使用。
Git是什麼相信在這裡不需要我多解釋了吧?
靜靜、字母哥、大長腿:
人甲:我們公司的Git分支主要涉及到:master,即主分支,這是每個項目必須有的;develop, 開發分支;feature,從develop分支上分出來的功能分支;release, 發布分支;fix,補丁分支;hotfix,熱補丁分支。
靜靜、字母哥、大長腿:
人甲:哈哈,目前聽不太懂沒關係,今天是第一天,我主要給大家講一些基礎。我就拿你們以後開發經常需要用到的feature分支舉例子吧。
靜靜、字母哥、大長腿:
人甲:首先,大家需要從Github上用git把我們的Pornhup項目下載下來。
字母哥:那個,甲大,咋下載啊?
靜靜:我看你有張吳彥祖的臉,為啥卻沒別人那智商,這你居然都不知道!
要從Github下載一個項目,需要用到clone命令。在你常用的目錄下面打開git, 輸入如下命令,就把項目下載下來了。
我說得沒錯吧,甲大
人甲:嗯,沒錯。
下載下來我們的項目後,默認是在master分支。master分支你們可以理解為是老虎的屁股,摸不得。
所以就需要用checkout命令跳轉到develop分支。checkout [切克鬧] 被用來切換分支,是git中最常用的命令之一。
如果這個時候,字母哥接到個任務是加入A功能,你知道該怎麼做嗎?
字母哥:我想想啊
好像我們也不在develop分支上直接操作,這個時候應該需要再從develop分支上搞個分支出來。創建一個新分支,就需要用到branch命令。
git branch feature-A
git checkout feature-A
人甲:你這樣說也沒錯,其實還有更簡單的辦法。兩條命令合併成一條,branch直接用-b代替,然後再用checkout跳轉到該分支,所以上面兩句命令就變成一句了
git checkout -b feature-A develop
然後你們就可以在這個feature-A分支上完成你們的工作了。那麼,如果代碼寫完發現沒有問題,接下來大家知道怎麼做嗎?
靜靜: 哈哈,我知道!
用add命令來添加新寫的代碼
commit命令用來提交新寫的代碼
git add feature-A
git commit -m "add feature A"
人甲:靜靜你很厲害嘛,晚上下班到我辦公室來。
但是先add, 再commit你們不覺得很繁瑣嗎?git這麼設計必定由它的道理,你們有人知道為什麼需要先add, 再commit嗎?
靜靜、字母哥、大長腿:不知道欸,沒仔細研究過。
人甲:git有好幾個區,我們平時更改添加刪減的代碼都在工作區裡面保存。
add命令執行後,修改被保存到暫存區。可以理解為你操作本地文件按了下ctrl + s
然後當你commit後,暫存區裡的東西就被保存到了本地倉庫。這裡可以理解成你把修改好的東西放到了倉庫,已經準備好運到下一個倉庫去了,也就是所謂的遠程倉庫,Github。
靜靜、字母哥、大長腿:原來是這樣啊!!
大長腿:人甲,接下來我來搶答下,add跟commit後是不是這個時候就用到merge命令,合併feature-A分到develop去啊?
人甲:不對哦,你如果這樣做,很可能出現衝突。因為可能出現有很多人在develop分支上更新。所以你這個時候用pull命令,把遠程倉庫的更新取回並更新。
然後再切換回自己的分支,用rebase命令合併新更新到自己目前工作的分支。
再檢查有沒有衝突,最好雙手合十起到沒有衝突,有的話可能目前你們的水平也解決不了。
靜靜、字母哥、大長腿: 這麼麻煩啊!!
人甲:沒辦法,git就是這麼設計的,如果一切安好的話。就可以用merge命令合併分支
git merge --no-ff feature-A
合併之後就剩下最後一步操作了。
大長腿: 甲大,選我來說
這個時候,我們已經成功合併分支到develop分支上了,為了防止工作丟失,可以把剛才的工作推送給到雲端去了。
人甲:是的,最後一步工作就是用push命令推送到Github就完事了
好的,今天就給大家講這麼多,大家要是明白了之後,就可以去試著開發上面交代的工作了。
對了,靜靜,下班後請你到我辦公室來。
系列文章
- 成人網站Pornhup被黑了
- 成人網站Pornhup重構史
- 成人網站Pornhup掛了
推薦閱讀
- 這種公司都得死
- 程式設計師捅了馬蜂窩