這是我面向小白寫的 Python 編程教程的第二篇(第一篇請點這兒)。拿勺子同學當小白鼠講過一遍后,就把修改完的講義發上來啦。
和勺子上課時,我意識到,不和新手交流的話,離出發點越遠的人就越不可能記得自己當初學習笨拙的樣子。但事實是:誰都是那樣開始的。所以就算你要花幾天時間才能完成這篇教程的內容,也不要覺得自己太笨太慢,畢竟每天都能進步一點點就已經很可貴了。
如果你認可這篇教程的價值,歡迎分享到朋友圈,分享給更多人!有看不懂的地方也可以留言。越多關注,作者就越多動力及時更新吶??
? ? ? ? ? ? ? 第2節 用 Git 記錄成長軌跡
macOS 版本
因為簡書編輯頁面代碼不友好,沒有代碼塊格式也無語法高亮,我只能用引用格式代替。產生混淆的地方請讀者到原文(見留言)查看完美編輯版 :P
a. Git 是什么?
關于 Git,有這么一個浪漫的說法——“工程師的時光穿梭機”。
我以前在公司實習時,老板總會說,"Don’t worry. You won’t break anything (because we have git!)”
如此神奇的 Git 其實是一個版本控制(Version Control System, VCS)工具,可以用它來快速有效地管理成千上萬個文件(不止是代碼)的歷史版本與進度。對于編程小白來說,Git 是個全新的概念,完全理解并掌握需要時間加練習,這篇教程就會帶你完整走完“安裝 - 設置 - 使用 Git”一條龍學習體驗。
順便提一句,“可以熟練使用 Git”是值得寫在求職簡歷上的程序員技能哦!跟著這篇教程走幾遍,完成課后作業,就可以讓你的簡歷再添亮點。
b. 安裝并設置 Git 運行環境
? 安裝 Git
查看電腦是否已經提前安裝了 Git,在 Terminal 中輸入:
git --version
若返回 git version xx.xx.x?(xx代表數字) 則說明電腦已經安裝 Git,否則就需要跟著下面幾步先安裝 Git,繼續在 Terminal 內輸入:
brew install git ? ?# 這里假設讀者已按第1節教程安裝了 Homebrew,否則請返回第1節安裝
brew link git
? 設置 Git 運行環境
第一步,先設置通用的用戶名與郵箱(與你的 GitHub 賬號信息相同):
git config --global user.name "Sinan Tang" ? ? ? ? ? ? ? ? ? ?# 注意引號
git config --global user.email tangsinan92@gmail.com ?# 要替換成你自己的名字與郵箱…
如果沒問題的話,輸入下面兩行檢查剛才的設置是否成功:
git config user.name
git config user.email
若返回了你輸過的用戶名與郵箱,則說明設置成功。
為什么要設置用戶名與郵箱呢?為了今后每次你用 Git 提交改動 (commit) 時都會自動刻上你的個人信息,這個是無法改變的(指不能改變某次改動的作者,而非不能改變 Git 的用戶名或郵箱)。
c. 利用 GitHub 創建永不丟失的個人作品集
? 什么是 GitHub?
上面以非常簡短的篇幅介紹完 Git 基本知識后,讓我們再來看看 GitHub 與Git 的關系。
Git 是一個版本管理工具(VCS tool),可以在命令行(command line)使用,可以在許多IDE內使用(比如PyCharm),也可以在網站使用——這個網站即為GitHub,是更加直觀的Git 操作界面(web-based Git)與項目托管網站。從這三種途徑進行的操作大多數時候可以相互替代。我一般用命令行來運行 Git 指令——雖然對于新手來說命令行不如網站界面那么直觀,但熟悉后會發現命令行比網站方便快捷很多。
有時 GitHub 這個名稱會讓人困惑,因為創建 Git 與 GitHub 網站的公司也叫 GitHub。并且 GitHub 這個名稱常用來指代基于 GitHub 的開發者社區——一個工程師們的主流社交網站!
GitHub 值得聊的趣聞軼事太多,這里就不占用過多字數,先把正事搞定!
? 為什么要提交代碼到 GitHub?
在講具體操作前,來簡單介紹下積極利用 GitHub 的好處。
有些IT公司招聘工程師時,會要應聘者的 GitHub 賬號,目的是查看應聘者在 GitHub 上的真實貢獻值(contribution activity) 和參與項目。如果你不是很清楚那是什么的話,可以參考下面我之前實習參與公司項目不到五個月的貢獻值截圖:
中間像日歷一樣的灰網格區域即為我提交代碼的貢獻值記錄,深淺不一的小綠塊兒代表了代碼提交次數——越深提交越多。因此,當別人看到你的 GitHub 個人主頁時,就能一目了然看到從你加入 GitHub 之后每天的貢獻值。
正因為 GitHub 上的貢獻值記錄很難造假,所以對于工程師來說,GitHub 才是最真實的個人簡歷(不過聽說國內有些程序員為了求職會去 GitHub 提交假項目……sigh)。
???以下操作建立在讀者已申請好一個 GitHub 賬號的假設上——還沒賬號的請先去 https://github.com 申請哦!
? 創建 Git repository,克隆項目到本地
在上一節已經初步學會使用 PyCharm 的基礎上,我們來看看如何在 PyCharm 中編程,并通過 Terminal 把代碼改動提交到 Git 上。
安裝了 PyCharm 后,會在電腦上自動生成一個文件夾叫 PycharmProjects,在 Finder 里找到它,在 Terminal 中打開。
要想在 Terminal 內打開某個文件夾,除了第1節提到過的“復制該文件夾 - 粘貼到 Terminal 內cd指令之后”之外,還可以:
? ? 設置快捷鍵:去往System Preferences > Keyboard > Shortcuts > Services > Files and Folders,找到一個選項叫“New Terminal at Folder”,啟用它并把后面的快捷鍵改成更順手的鍵盤組合,比如我改成了???T(T for Terminal)。每次只要選中一個文件夾,再按???T就可以很快在 Terminal 內打開啦!
? ? 右鍵點擊:當你啟用了“New Terminal at Folder”后,可以右鍵點擊一個文件夾,點擊跳出菜單的最后一行“New Terminal at Folder”
直接用快捷鍵呼出 Terminal 的方法最快捷(= 最像工程師),推薦!?
然后在 Terminal 中輸入:
git init ? ? ? ?# init = initialise 初始化
這一步會在 PycharmProjects 內創建一個你看不到的文件夾 .git,里面包含了所有你在本地使用 Git 的所需文件。
接下來,打開 GitHub 官網,登陸你的賬戶,在首頁右下方有個窗口叫“Your repositories” (你的項目,有人翻譯成“庫”,但我覺得不如“項目”易于理解),右邊有個綠色按鈕“New repository”,點開,在設置頁面給這個項目取個名(Repository name),選擇“Public”,選中”Initialize this repository with a README”,最后點擊“Create repository”。這樣你就擁有了自己的第一個 GitHub 項目!
在新建項目的主頁,找到頁面右端一個寫著“Clone or download”的綠色按鈕,點開,復制其中自動生成的 https 地址。
現在回到剛才的 Terminal 中(依然在 PycharmProjects 的位置),輸入:
git clone https://github.com/SinanTang/xxxxx.git ? ?# 網址部分替換成你剛剛復制的地址,注意不要把這里的網址范例貼上
接下來等待 Terminal 內進度條完成的時間里,你可以去 PycharmProjects 文件夾中看一眼,應該會發現剛剛在 GitHub 新建的項目,已在這里出現了同名“克隆”文件夾——這個文件夾與 GitHub 上的 Repository 是一模一樣的,你在本地修改文件夾內內容,提交后,就會自動同步到 GitHub 相關 Repo (repo = repository, 這是個極其常用的縮寫) 上。
創建并本地化一個 GitHub repo 的方法不止這一個,但實踐下來,我認為這是最有利于小白上手的方法。
? 用 IDE (PyCharm) 與命令行提交改動到 GitHub
現在用 Spotlight 呼出 PyCharm,出現的應該還是上一次隨便玩玩的 project,點擊上方任務欄File > New Project… > Pure Python,在Location一欄選中剛剛新建的項目名字,選擇 Interpreter (即 Python 2.7 或 Python 3.6),最后點擊Create.
順利的話,此時窗口左側已經變成新項目的名稱了。按第1節里寫過的新建 Python 腳本的方法,現在在此目錄下新建一個 test.py,在空白腳本里寫下這句我們現在已經非常熟悉了的:
print("Hello World") ? ? ? ? ? ?# Python 3.6
在 PyCharm 內敲擊 ?9,下方會跳出 Version Control 框,在 Local Changes 這兒你能一眼看到自己改動/添加/刪除了哪些文件。你還可以點第二個 Log 標簽,猜猜這兒是用來展示什么的?答案一會兒揭曉。
現在回到 Terminal 內,確認已位于新項目的位置(需要 cd 到該項目),輸入:
git status ? ? ? ? ? # 查看目前的 git 狀態
可能需要輸入 GitHub 郵箱與密碼。
接著會返回一堆信息,看看剛剛添加的 test.py 是不是也在其中呢?我們現在就來提交它。接著輸入:
git add -A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 把所有改動都添加到“暫存區”
git commit -a -m "initial commit" ? # 提交所有暫存的改動,引號內填寫此次提交的解釋說明
git push origin master ? ? ? ? ? ? ? ? ? # 將改動推送到服務器
git log ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看提交歷史,如果成功會在這里看到
git status ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 再次查看 git 狀態,當所有改動都已推送到云端后,這里會出現“nothing to commit, working tree clean”的信息
第三步 git push 在第一次提交改動時或許會返回信息需要你單獨設置些參數, 但以后一般情況下只需輸入 git push 即可。
為了加深小白對?add / commit / push?提交改動三步曲的理解,我找到了下圖——
現在回到 PyCharm 內,看下方 Local Changes 區是不是變成空白了?再點右邊的 Log 標簽,和剛剛不太一樣了吧?是不是出現了一個名為”initial commit”的新“節點”,進度樹向上生長了一節?
再回到 GitHub 網站,你的新項目應該已經和本地改動同步了,你可以在這個 Repo 的 commits 頁面看到你剛剛在 Terminal 進行的操作。
第2節 - 作業
? ? 拓展閱讀:Pro Git book by Scott Chacon and Ben Straub?( https://git-scm.com/book/en/v2 ) (推薦閱讀英文書,不過頁面也有中譯本可選)?
? ? 從 GitHub 體驗官升級為真正用戶:去 GitHub 主頁,點擊上方?Explore,在?Trending?里翻翻最近的流行項目與牛人。?
? ? 有個 GitHub 項目專門幫工程師一鍵生成 GitHub 個人簡歷,你也可以去玩玩 ( http://resume.github.io )。雖然現在還沒有東西可以展示,但將來總會有的嘛!
第2節 - 小結
這節課我們簡單了解了一種主流版本管理工具 Git 與工程師的社交網站 GitHub,創建了第一個 GitHub 項目,并使用 IDE 與命令行第一次提交了代碼改動!一切都才剛剛開始。
推薦閱讀: