想在 30 分鐘內學會 Git 嗎?看這裡就對了!
Git 是一種「原始碼版本控制」軟體,它可以儲存原始碼每個版本之間的差異,然後您可以要求「時光回溯」到任何指定的版本。這可以防止一天到晚改規格的客戶或老闆,在您辛苦更動原始碼後,來一句要命的:「還是之前的那一版比較好」。我個人認為,它是程式設計中,最重要的 7 大軟體之一(文字編輯器、編譯器、版本控制器、自動化建構系統、單元測試軟體、環境佈建系統、與除錯器)。
這類「版本控制軟體」,依照流行先後,著名的有 CVS、Subversion、與 Git。目前最流行的版本控制軟體是「Git」,流行原因多多少少是因為 Linux 核心(Linux Kernel)原始碼,就是用這套軟體保持各個版本差異的。不少公司也要求程式設計師寫好原始碼後,一律都得回存 Git 系統才算完工,不能只是存在私人的硬碟就了事。所以 Git 就變成業界必備的軟體之一。
補習班常常有同學問我,有沒有那種很簡單的 Git 說明書,不用講太深,但要在 30 ~ 60 分鐘內就掌握常用功能的教材?之前一直找不到,不過今天幫大家找到了!還有中文版喔!叫做「Git 簡明指南」。鏈結如下:
https://rogerdudler.github.io/git-guide/index.zh.html
其實它的原文名稱有點好玩:「Git - The Simple Guide, No Deep Shit!」。這類標題通常能騷動我個性中愛作怪的小惡魔,讓我會心一笑後點進去看看。看完後,果然「一點點深的便便」都沒有... XD 還有中文版(簡中)!心想這麼讚的東西不介紹怎麼行!就花時間寫了這一篇。
希望今天的分享對各位的日常工作有幫助!我也很鼓勵大家能找到適合自己的「七大系統」,把它弄熟。畢竟「工欲善其事,必先利其器」嘛!我個人習慣使用的七大系統,也列在底下讓大家參考:
1. 文字編輯器:vim。不好學,但游標移動速度與文字操控能力超快!
2. 編譯器:gcc。因為我寫 C 語言比較多,所以用 gcc。
3. 版本控制器:git。其實我之前是熟 subversion。不過 git 也很好用喔!
4. 自動化建構系統:make。可以把編譯、安裝...等囉哩八唆的指令濃縮成一個簡稱(如:build, install...等)。打完按下 enter 後就可以去泡咖啡了!還能偵測哪些原始碼已經編譯過,不需重新編譯已縮短作業時間。
5. 單元測試軟體:CUnit。嚴格來說,這算一套「函式庫」,可以針對你寫好的原始碼做測試。由於我寫 C 較多,所以用 CUnit。如果您寫的程式碼是 Java 或其它,可能得找相對應的測試軟體。
6. 環境佈建軟體:VirtualBox。用它的原因是 Win, Mac, Linux 全平台都支援。我會把程式設計環境灌好後的 VirtualBox 映像檔保存好,每次要乾淨環境就 new 一個新的虛擬機起來。最近迷上 Vagrant,想知道 Vagrant 是什麼的可以看這篇: http://goo.gl/29mBs9
7. 除錯器:gdb。雖然是文字介面,但連線到運算能力很差的開發板上想除錯,也只有 gdb 跑得動。用久了也習慣了。
其實最近還想加上第八項「(8) 軟體部署系統:Docker」,不過還在研究,也還沒熟悉。等熟悉了再跟大家報告。 :-)
如果覺得文章不錯,還煩請各位不吝按讚打賞或分享一下喔! m(^ ^)m
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「linux版本差異」的推薦目錄:
- 關於linux版本差異 在 紀老師程式教學網 Facebook 的精選貼文
- 關於linux版本差異 在 紀老師程式教學網 Facebook 的最佳解答
- 關於linux版本差異 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於linux版本差異 在 大象中醫 Youtube 的精選貼文
- 關於linux版本差異 在 大象中醫 Youtube 的最佳貼文
- 關於linux版本差異 在 Re: [問題] Linux Kenel版本 - 批踢踢實業坊 的評價
- 關於linux版本差異 在 Linux 系統比較 的評價
- 關於linux版本差異 在 linux版本差異、linux系統推薦在PTT/mobile01評價與討論 的評價
- 關於linux版本差異 在 linux版本差異、linux系統推薦在PTT/mobile01評價與討論 的評價
- 關於linux版本差異 在 红帽最新linux版本rhel 8.1系统安装,和老版本有差异 - YouTube 的評價
- 關於linux版本差異 在 linux版本-Dcard與PTT討論推薦|2022年06月 - 網紅排名情報站 的評價
- 關於linux版本差異 在 linux版本-Dcard與PTT討論推薦|2022年06月 - 網紅排名情報站 的評價
linux版本差異 在 紀老師程式教學網 Facebook 的最佳解答
[精選文章] 超簡單的版本控制軟體 Git 教學
大家寫程式時有沒有遇到修改後,才發現兩天前那個版本才是比較正確的這種情況?或者老闆叫你將軟體修改到另一個方向,兩個月後才發現做不到,要改回原來的樣子,但原始碼已經面目全非了?
您一定平常沒有使用「版本控制」軟體!所謂「版本控制軟體」,是指會記錄各個原始碼版本差異的軟體。詳情可以到維基百科內查「版本控制」條目即知。目前流行過的版本控制軟體有:CVS, Subversion, Git。早期我很喜歡 Subversion,後來我都用 Git。Git 也是 Linux 開源碼的版本控制軟體,很值得一學!
最近小弟終於找到很簡單的 Git 教學網站,網址如下。如果您也想學會 Git,可以參考下列網站,一步一步就可學會喔!
http://gitimmersion.com/
linux版本差異 在 コバにゃんチャンネル Youtube 的最佳貼文
linux版本差異 在 大象中醫 Youtube 的精選貼文
linux版本差異 在 大象中醫 Youtube 的最佳貼文
linux版本差異 在 Linux 系統比較 的推薦與評價
我最近想來學學Linux系統(因為win跟mac都玩膩了),我稍微上網查了一下,我留下了ubuntu和mint ... 要注意的是有些版本對於你的硬體的支援程度不同。 ... <看更多>
linux版本差異 在 linux版本差異、linux系統推薦在PTT/mobile01評價與討論 的推薦與評價
Linux Ubuntu在PTT/mobile01評價與討論, 提供linux版本差異、linux系統推薦、Linux 台灣版就來房產建案資訊懶人包,有最完整Linux Ubuntu體驗分享訊息. ... <看更多>
linux版本差異 在 Re: [問題] Linux Kenel版本 - 批踢踢實業坊 的推薦與評價
※ 引述《FierceBreast (兇奴王者)》之銘言:
: 目前Linux Kernel
: mainline: 4.4 2016-01-10
: stable: 4.3.3 2015-12-15
: stable: 4.2.8 2015-12-15
: longterm: 4.1.15 2015-12-15
: longterm: 3.18.25 2015-12-15
: longterm: 3.14.58 2015-12-09
: longterm: 3.12.52 2016-01-09
: longterm: 3.10.94 2015-12-09
: longterm: 3.4.110 2015-10-22
: longterm: 3.2.75 2015-12-30
: longterm: 2.6.32.69 2015-12-05
: linux-next: next-20160112 2016-01-12
: 看到最主要有
: 2.6最老的長青版本
話說我還有老機器使用 2.4 的,除非系統 OS 換掉要不然還是 2.4....
: 3.2 3.4 3.10 3.12 3.14 3.18
: 4.4 the newest
: 想問說到底有哪些的不一樣呢
: 1.)
: 2.X 3.X 4.X的主要差別?
這樣問很難回答。這邊先說說以往的版本歷史,說的是 2.6 與以往之前版本。
先拿早期 2.x時代來說,早期 2.x 世代來說,x 偶數版表示穩定版本,y 奇數
表示開發中版本,一般正式機器也只會執行穩定的版本。
2.0.xx 出來之後後續開發差不多了,若有大幅度的變更與功能納入後續就切一個
版本出來,就是2.1.xx 版本出來繼續寫,最後 2.1.xx 到一個階段之後到穩定就會
將當時候版本變成 2.2 的版本,後續簡單的修正與功能變更就是 2.2.xx。2.2.xx
到一個階段後續又拉一個 2.3.xx 版本繼續開發實驗新功能,最後 2.3.xx 的版本
就成為 2.4 系列一開始的穩定版本... 2.4 開始之後也是有拉出 2.5 的版本,最後
成為 2.6 世代穩定版本。
以往版本編號改變比較保守,比方 2.6 部分有許多功能加入與安全更新等,後續就
2.6.1, 2.6.2 這樣一直往下走... 後續 linus trovalds 宣布後續 2.6 之後就跳
3.0 的版本,後續的版本編號部分也稍微與以往不同,基本上就是 3.0 出來之後只要
開發到一段的時間幾個月就會 release 出3.1 的版本,後續持續進行就會有 3.2
版本,在下來就是 3.3 版本依此類推。3.x 系列記得應該是到 3.18 就直接跳 4
版本了,我猜整個功能納入應該足夠讓主要版本編號改變一個數字。
2.x 與 3.x 有什麼差別,其實用比較不正式的回應是,請問 office 2003 與 2007
有什麼差別呢?或者是 windows xp 與 windows 7 有什麼差別呢?我想應該可以很
粗糙方式應對這個問題。
3.x 開始後續就 3.0, 3.1, 3.2 等等一直走,若 3.0 版本來說有一些 security
更新納入等通常就會有 3.0.1, 3.0.2 等版本釋放出。一般來說每個 3.x 版本大多
都有個更新維護的週期在,在一定時間內還會有更新維護,尤其重大 bug 與
security fixed,超過就不再維護放出修正了。
一般 linux 發行版本在 2.x 系列版本來說,比方當時候使用是 2.6.32 好了,
大多就會以這個版本持續下去當作該 linux distro 版本的 long-term 維護版本。
比方 rhel/centos 6 就使用 2.6.32這個版本當長期維護使用的版本,有 bug
security fixed 甚至新功能由其他 kernel 要 backport 都會納入到自己的 2.6.32
版本上,後續安裝套件就常見有 2.6.32-1, 2.6.32-2 等自己定義的命名方式,
一直到最近都進展到 2.6.32-504,當然常見內部可能有一些小調整,可能有
2.6.32-504.xx.yy 等版本修正編號。
一些商業 linux 版本像是 rhel, sles 等大多發行版本出來之後就固定某個編號,
不大會比方當時候使用是 2.6.32,後續有 kernel release 2.6.33 就把這個版本
打包就給該發行版本安裝使用.. 其中牽涉因素很廣,大多一些 2.6.32, 2.6.33
這類編號變更可能會影響 kernel ABI 的規則,有一些程式尤其 driver 呼叫底層
系統會有一定的結構甚至參數,新的 kernel 版本有時候會改變一些規則,為了能夠
維持一定的相容性與系統的一致性,並不會在當下是使用 2.6.32 版本時候後續因為
2.6.33 就放個新的 2.6.33 讓使用者安裝使用。若相關一些必要有需要的話,大多
linux 廠商會 backport 把 2.6.33 一些改變放入到 2.6.32 內,但是大體上還是維持
2.6.32 基礎架構在但是多了一些修正與功能。
拉回來,目前 3.x 系列這樣版本快速增加,這些版本簡單說一般是稱呼為 Mainline
的版本,也就是大多幾個月 (2-3) 就會 release 一個版本出來... 每個 Mainline
都有相關新功能納入與 bug 修正等等... 而一個 Mainline 版本出來之後大體上架構
不會大改了,主要以安全性與臭蟲修正為主,一般這類版本就稱呼 stable 版本.. 而
一般 stable 版本大多會伴隨下一個 Marnline 版本出來之後就不會再維護任何更新,
不過若該版本還是會持續維護更新任何安全更新的話,那這個版本就是所謂的 Longterm
版本,官方會有會有比較長的維護週期,甚至有一些 linux distro 版本還會有自己
特有維護的版本更是會有自己的 longtime support 版本持續維護。
ubuntu linux 來說,每個 release 版本搭載的 kernel 版本也有一定自己的維護週期,
甚至自己還有 ubuntu linux LTS 版本也有更常時間的維護 support,詳細可以查看:
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
: 2.)
: 3.2 3.4 3.10 3.12 3.14 3.18
每個 release 會有有不同功能加入,大致上功能新增可以參考這個網站,不過資訊沒有同步到近期
的版本上:
https://www.thomas-krenn.com/en/wiki/Linux_Kernel_Versions#Kernel_3.0
: 3.X這麼多版本,不曉得為什麼要longterm這麼多?
: 差異在哪裡呢?
: 謝謝!!
longterm 版本多個人感覺沒什麼特別的地方,只要維護者願意當然要長期維護支援是好事。
上面回覆還請看官指教。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.155.17
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1452692967.A.4BC.html
... <看更多>