這是我面向小白寫的 Python 編程教程的第二篇(第一篇請點這兒)焦影。拿勺子同學當小白鼠講過一遍后车遂,就把修改完的講義發(fā)上來啦。
和勺子上課時斯辰,我意識到舶担,不和新手交流的話,離出發(fā)點越遠的人就越不可能記得自己當初學習笨拙的樣子彬呻。但事實是:誰都是那樣開始的衣陶。所以就算你要花幾天時間才能完成這篇教程的內(nèi)容,也不要覺得自己太笨太慢闸氮,畢竟每天都能進步一點點就已經(jīng)很可貴了剪况。
如果你認可這篇教程的價值,歡迎分享到朋友圈蒲跨,分享給更多人译断!有看不懂的地方也可以留言。越多關注或悲,作者就越多動力及時更新吶??
? ? ? ? ? ? ? 第2節(jié) 用 Git 記錄成長軌跡
macOS 版本
因為簡書編輯頁面代碼不友好孙咪,沒有代碼塊格式也無語法高亮,我只能用引用格式代替隆箩。產(chǎn)生混淆的地方請讀者到原文(見留言)查看完美編輯版 :P
a. Git 是什么该贾?
關于 Git,有這么一個浪漫的說法——“工程師的時光穿梭機”捌臊。
我以前在公司實習時杨蛋,老板總會說,"Don’t worry. You won’t break anything (because we have git!)”
如此神奇的 Git 其實是一個版本控制(Version Control System, VCS)工具理澎,可以用它來快速有效地管理成千上萬個文件(不止是代碼)的歷史版本與進度逞力。對于編程小白來說,Git 是個全新的概念糠爬,完全理解并掌握需要時間加練習寇荧,這篇教程就會帶你完整走完“安裝 - 設置 - 使用 Git”一條龍學習體驗。
順便提一句执隧,“可以熟練使用 Git”是值得寫在求職簡歷上的程序員技能哦揩抡!跟著這篇教程走幾遍,完成課后作業(yè)镀琉,就可以讓你的簡歷再添亮點峦嗤。
b. 安裝并設置 Git 運行環(huán)境
? 安裝 Git
查看電腦是否已經(jīng)提前安裝了 Git,在 Terminal 中輸入:
git --version
若返回 git version xx.xx.x?(xx代表數(shù)字) 則說明電腦已經(jīng)安裝 Git屋摔,否則就需要跟著下面幾步先安裝 Git烁设,繼續(xù)在 Terminal 內(nèi)輸入:
brew install git ? ?# 這里假設讀者已按第1節(jié)教程安裝了 Homebrew,否則請返回第1節(jié)安裝
brew link git
? 設置 Git 運行環(huán)境
第一步钓试,先設置通用的用戶名與郵箱(與你的 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 創(chuàng)建永不丟失的個人作品集
? 什么是 GitHub铜幽?
上面以非常簡短的篇幅介紹完 Git 基本知識后,讓我們再來看看 GitHub 與Git 的關系串稀。
Git 是一個版本管理工具(VCS tool)除抛,可以在命令行(command line)使用,可以在許多IDE內(nèi)使用(比如PyCharm)母截,也可以在網(wǎng)站使用——這個網(wǎng)站即為GitHub到忽,是更加直觀的Git 操作界面(web-based Git)與項目托管網(wǎng)站。從這三種途徑進行的操作大多數(shù)時候可以相互替代清寇。我一般用命令行來運行 Git 指令——雖然對于新手來說命令行不如網(wǎng)站界面那么直觀喘漏,但熟悉后會發(fā)現(xiàn)命令行比網(wǎng)站方便快捷很多。
有時 GitHub 這個名稱會讓人困惑华烟,因為創(chuàng)建 Git 與 GitHub 網(wǎng)站的公司也叫 GitHub翩迈。并且 GitHub 這個名稱常用來指代基于 GitHub 的開發(fā)者社區(qū)——一個工程師們的主流社交網(wǎng)站!
GitHub 值得聊的趣聞軼事太多盔夜,這里就不占用過多字數(shù)负饲,先把正事搞定!
? 為什么要提交代碼到 GitHub喂链?
在講具體操作前返十,來簡單介紹下積極利用 GitHub 的好處。
有些IT公司招聘工程師時椭微,會要應聘者的 GitHub 賬號洞坑,目的是查看應聘者在 GitHub 上的真實貢獻值(contribution activity) 和參與項目。如果你不是很清楚那是什么的話蝇率,可以參考下面我之前實習參與公司項目不到五個月的貢獻值截圖:
中間像日歷一樣的灰網(wǎng)格區(qū)域即為我提交代碼的貢獻值記錄迟杂,深淺不一的小綠塊兒代表了代碼提交次數(shù)——越深提交越多。因此本慕,當別人看到你的 GitHub 個人主頁時排拷,就能一目了然看到從你加入 GitHub 之后每天的貢獻值。
正因為 GitHub 上的貢獻值記錄很難造假间狂,所以對于工程師來說攻泼,GitHub 才是最真實的個人簡歷(不過聽說國內(nèi)有些程序員為了求職會去 GitHub 提交假項目……sigh)火架。
???以下操作建立在讀者已申請好一個 GitHub 賬號的假設上——還沒賬號的請先去 https://github.com 申請哦!
? 創(chuàng)建 Git repository鉴象,克隆項目到本地
在上一節(jié)已經(jīng)初步學會使用 PyCharm 的基礎上忙菠,我們來看看如何在 PyCharm 中編程,并通過 Terminal 把代碼改動提交到 Git 上纺弊。
安裝了 PyCharm 后牛欢,會在電腦上自動生成一個文件夾叫 PycharmProjects,在 Finder 里找到它淆游,在 Terminal 中打開傍睹。
要想在 Terminal 內(nèi)打開某個文件夾,除了第1節(jié)提到過的“復制該文件夾 - 粘貼到 Terminal 內(nèi)cd指令之后”之外犹菱,還可以:
? ? 設置快捷鍵:去往System Preferences > Keyboard > Shortcuts > Services > Files and Folders拾稳,找到一個選項叫“New Terminal at Folder”,啟用它并把后面的快捷鍵改成更順手的鍵盤組合腊脱,比如我改成了???T(T for Terminal)访得。每次只要選中一個文件夾,再按???T就可以很快在 Terminal 內(nèi)打開啦陕凹!
? ? 右鍵點擊:當你啟用了“New Terminal at Folder”后悍抑,可以右鍵點擊一個文件夾,點擊跳出菜單的最后一行“New Terminal at Folder”
直接用快捷鍵呼出 Terminal 的方法最快捷(= 最像工程師)杜耙,推薦搜骡!?
然后在 Terminal 中輸入:
git init ? ? ? ?# init = initialise 初始化
這一步會在 PycharmProjects 內(nèi)創(chuàng)建一個你看不到的文件夾 .git,里面包含了所有你在本地使用 Git 的所需文件佑女。
接下來记靡,打開 GitHub 官網(wǎng),登陸你的賬戶团驱,在首頁右下方有個窗口叫“Your repositories” (你的項目簸呈,有人翻譯成“庫”,但我覺得不如“項目”易于理解)店茶,右邊有個綠色按鈕“New repository”蜕便,點開,在設置頁面給這個項目取個名(Repository name)贩幻,選擇“Public”轿腺,選中”Initialize this repository with a README”,最后點擊“Create repository”丛楚。這樣你就擁有了自己的第一個 GitHub 項目族壳!
在新建項目的主頁,找到頁面右端一個寫著“Clone or download”的綠色按鈕趣些,點開仿荆,復制其中自動生成的 https 地址。
現(xiàn)在回到剛才的 Terminal 中(依然在 PycharmProjects 的位置),輸入:
git clone https://github.com/SinanTang/xxxxx.git ? ?# 網(wǎng)址部分替換成你剛剛復制的地址拢操,注意不要把這里的網(wǎng)址范例貼上
接下來等待 Terminal 內(nèi)進度條完成的時間里锦亦,你可以去 PycharmProjects 文件夾中看一眼,應該會發(fā)現(xiàn)剛剛在 GitHub 新建的項目令境,已在這里出現(xiàn)了同名“克隆”文件夾——這個文件夾與 GitHub 上的 Repository 是一模一樣的杠园,你在本地修改文件夾內(nèi)內(nèi)容,提交后舔庶,就會自動同步到 GitHub 相關 Repo (repo = repository, 這是個極其常用的縮寫) 上抛蚁。
創(chuàng)建并本地化一個 GitHub repo 的方法不止這一個,但實踐下來惕橙,我認為這是最有利于小白上手的方法瞧甩。
? 用 IDE (PyCharm) 與命令行提交改動到 GitHub
現(xiàn)在用 Spotlight 呼出 PyCharm,出現(xiàn)的應該還是上一次隨便玩玩的 project弥鹦,點擊上方任務欄File > New Project… > Pure Python亲配,在Location一欄選中剛剛新建的項目名字,選擇 Interpreter (即 Python 2.7 或 Python 3.6)惶凝,最后點擊Create.
順利的話吼虎,此時窗口左側已經(jīng)變成新項目的名稱了。按第1節(jié)里寫過的新建 Python 腳本的方法苍鲜,現(xiàn)在在此目錄下新建一個 test.py思灰,在空白腳本里寫下這句我們現(xiàn)在已經(jīng)非常熟悉了的:
print("Hello World") ? ? ? ? ? ?# Python 3.6
在 PyCharm 內(nèi)敲擊 ?9,下方會跳出 Version Control 框混滔,在 Local Changes 這兒你能一眼看到自己改動/添加/刪除了哪些文件洒疚。你還可以點第二個 Log 標簽,猜猜這兒是用來展示什么的坯屿?答案一會兒揭曉油湖。
現(xiàn)在回到 Terminal 內(nèi),確認已位于新項目的位置(需要 cd 到該項目)领跛,輸入:
git status ? ? ? ? ? # 查看目前的 git 狀態(tài)
可能需要輸入 GitHub 郵箱與密碼乏德。
接著會返回一堆信息,看看剛剛添加的 test.py 是不是也在其中呢吠昭?我們現(xiàn)在就來提交它喊括。接著輸入:
git add -A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 把所有改動都添加到“暫存區(qū)”
git commit -a -m "initial commit" ? # 提交所有暫存的改動,引號內(nèi)填寫此次提交的解釋說明
git push origin master ? ? ? ? ? ? ? ? ? # 將改動推送到服務器
git log ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看提交歷史矢棚,如果成功會在這里看到
git status ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 再次查看 git 狀態(tài)郑什,當所有改動都已推送到云端后,這里會出現(xiàn)“nothing to commit, working tree clean”的信息
第三步 git push 在第一次提交改動時或許會返回信息需要你單獨設置些參數(shù)蒲肋, 但以后一般情況下只需輸入 git push 即可蘑拯。
為了加深小白對?add / commit / push?提交改動三步曲的理解钝满,我找到了下圖——
現(xiàn)在回到 PyCharm 內(nèi),看下方 Local Changes 區(qū)是不是變成空白了申窘?再點右邊的 Log 標簽弯蚜,和剛剛不太一樣了吧?是不是出現(xiàn)了一個名為”initial commit”的新“節(jié)點”偶洋,進度樹向上生長了一節(jié)?
再回到 GitHub 網(wǎng)站距糖,你的新項目應該已經(jīng)和本地改動同步了玄窝,你可以在這個 Repo 的 commits 頁面看到你剛剛在 Terminal 進行的操作。
第2節(jié) - 作業(yè)
? ? 拓展閱讀: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 )。雖然現(xiàn)在還沒有東西可以展示浓领,但將來總會有的嘛玉凯!
第2節(jié) - 小結
這節(jié)課我們簡單了解了一種主流版本管理工具 Git 與工程師的社交網(wǎng)站 GitHub,創(chuàng)建了第一個 GitHub 項目联贩,并使用 IDE 與命令行第一次提交了代碼改動漫仆!一切都才剛剛開始。
推薦閱讀:
《文科女進德國IBM實習做程序媛泪幌,我是怎么辦到的盲厌?》