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

題圖:pexels

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

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


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


推薦閱讀:

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

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


謝謝你的閱讀!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祸泪,一起剝皮案震驚了整個濱河市吗浩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌没隘,老刑警劉巖懂扼,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異右蒲,居然都是意外死亡微王,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門品嚣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炕倘,“玉大人,你說我怎么就攤上這事翰撑≌中” “怎么了啊央?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涨醋。 經(jīng)常有香客問我瓜饥,道長,這世上最難降的妖魔是什么浴骂? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任乓土,我火速辦了婚禮,結果婚禮上溯警,老公的妹妹穿的比我還像新娘趣苏。我一直安慰自己,他們只是感情好梯轻,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布食磕。 她就那樣靜靜地躺著,像睡著了一般喳挑。 火紅的嫁衣襯著肌膚如雪彬伦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天伊诵,我揣著相機與錄音单绑,去河邊找鬼。 笑死曹宴,一個胖子當著我的面吹牛询张,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浙炼,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼份氧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弯屈?” 一聲冷哼從身側響起蜗帜,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎资厉,沒想到半個月后厅缺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡宴偿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年湘捎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窄刘。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡窥妇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娩践,到底是詐尸還是另有隱情活翩,我是刑警寧澤烹骨,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站材泄,受9級特大地震影響沮焕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜拉宗,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一峦树、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旦事,春花似錦魁巩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽化戳。三九已至单料,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間点楼,已是汗流浹背扫尖。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掠廓,地道東北人换怖。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像蟀瞧,于是被迫代替她去往敵國和親沉颂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,077評論 25 707
  • 好書太多,只要在路上堅持讀即可切端。 就像這本關于大猩猩的繪本彻坛,就是一句話good night不斷重復而已,但是畫面足...
    木木sani閱讀 415評論 0 0
  • 年輕時的我們總想找到一種方法去應對一些事情踏枣,可往往會發(fā)現(xiàn)昌屉,這種方法的正負兩極卻那么的極端。正如《唐頓莊園》里人們...
    棲梧桐木閱讀 235評論 0 0
  • 美國稱霸如今的世界茵瀑,依靠的是三種武器:武力间驮,經(jīng)濟,文化宣傳马昨。 僅靠三樣武器的單獨使用是無法稱雄的蜻牢,他如何使用的呢烤咧?...
    晚熟男閱讀 336評論 0 0
  • 努力想寫點啥,但又不知道從何寫起抢呆,許久沒有用文字抒發(fā)情感煮嫌,再寫,只是讓本不流暢的文筆抱虐,變得更不流暢罷了昌阿。 ...
    juliexu007閱讀 156評論 2 0