用Git記錄成長軌跡 | 寫給小白的工程師入門

題圖:pexels

這是我面向小白寫的 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?提交改動三步曲的理解,我找到了下圖——

參考:http://rogerdudler.github.io/git-guide/index.zh.html


現在回到 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 與命令行第一次提交了代碼改動!一切都才剛剛開始。


推薦閱讀:

《寫給小白的工程師入門 - 從 Python 開始》

《文科女進德國IBM實習做程序媛,我是怎么辦到的?》


謝謝你的閱讀!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,334評論 25 708
  • 好書太多,只要在路上堅持讀即可。 就像這本關于大猩猩的繪本,就是一句話good night不斷重復而已,但是畫面足...
    木木sani閱讀 433評論 0 0
  • 年輕時的我們總想找到一種方法去應對一些事情,可往往會發現,這種方法的正負兩極卻那么的極端。正如《唐頓莊園》里人們...
    棲梧桐木閱讀 237評論 0 0
  • 美國稱霸如今的世界,依靠的是三種武器:武力,經濟,文化宣傳。 僅靠三樣武器的單獨使用是無法稱雄的,他如何使用的呢?...
    晚熟男閱讀 345評論 0 0
  • 努力想寫點啥,但又不知道從何寫起,許久沒有用文字抒發情感,再寫,只是讓本不流暢的文筆,變得更不流暢罷了。 ...
    juliexu007閱讀 159評論 2 0