| |
定 價:98 元
當前圖書已被 1 所學校薦購過!
查看明細
- 作者:[希臘]安娜 斯庫利卡里(Anna Skoulikari)
- 出版時間:2024/10/1
- ISBN:9787519891893
- 出 版 社:中國電力出版社
- 中圖法分類:TP311.561-62
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開

本書以簡單、直觀、形象的方式教授Git,讓你對Git版本控制的工作原理建立深刻的感性認識。通過顏色、情景和實踐練習,你定能信心滿滿,學會使用這個工具。本書循序漸進,你不會陷入未知術語或概念的困境。本書涵蓋以下內容:下載Git,初始化本地倉庫。把文件添加到暫存區(qū)域并進行提交。創(chuàng)建、切換和刪除分支。合并和變基分支。使用遠程倉庫,包括克隆、推送、拉取和獲取。使用拉取請求與他人協(xié)作。
這是一本非常有趣、易于理解且非常全面的指南,定能讓你熟練掌握Git知識。 Robert C. Martin (Uncle Bob) 軟件工匠、《代碼整潔之道》作者
Anna寫了一本Git社區(qū)需要的書。無論你喜歡什么樣的學習方式,這本書都能讓你學會Git。 Ben Straub 開發(fā)者、《精通Git》作者之一
前言我從未想過寫一本教授Git 的書。但是,經歷一些事情之后,我幸運地發(fā)現(xiàn)一個創(chuàng)意,能以簡單的方式教授這項技術。在一個Web 開發(fā)編程訓練營中,我第一次聽說Git。訓練營的老師向學生們簡單介紹了Git,可惜所有項目都是單獨完成的,沒有必要深入使用Git。編程訓練營結束后,我找到一份初級前端開發(fā)工作,在一家大公司開發(fā)網站。我真正的Git 學習之旅從這份新工作的第一天就開始了。前幾個月,作為一家大公司團隊的一員,我膽戰(zhàn)心驚。每當我需要使用Git 做一些看似極其復雜的事情時,我都害怕自己會破壞倉庫,或者造成不可收拾的局面。為了順利與同事共事,我決定系統(tǒng)自學Git。但是我很快發(fā)現(xiàn),網上的資源大多不適合初學者。掌握基礎知識后,我漸漸構思一個想法,借助豐富的色彩,以簡單的視覺化方式教授這項技術。最終,我創(chuàng)建了一門在線課程,發(fā)布到網上。在制作這門課程的過程中,腦海深處又浮現(xiàn)一個想法:有一天我還要寫一本書。我的課程收到很多正面反饋。終于,在2021 年夏天,我決定是時候開始寫書了。你現(xiàn)在閱讀的這本書就是這個決定的產物,希望它對你的Git 學習之旅有所幫助!目標讀者本書適合想要學習Git 工作原理基礎知識的人。它專為剛剛開始學習技術技能的人或擔任非技術角色但需要使用Git 與技術同事協(xié)作的人而設計?赡苁芤嬗诒緯娜税ǎǖ幌抻冢┚幊逃柧殸I的學生、計算機科學學生、技術作家、產品經理、設計師、初級開發(fā)人員、數據科學家和自學的程序員。本書為沒有Git 經驗以及有少量Git 經驗的人而寫。如果你沒有Git 經驗,那也不是問題,因為本書從零開始講授,涵蓋安裝Git 和使用命令行。如果你已經有一些使用Git 或命令行的經驗,第1 章權當復習。不過,建議你不要跳過第1 章,因為那一章將設置貫穿本書的Rainbow 項目。內容概述本書理實結合,你需要在自己的計算機中練習,鞏固所學的Git 基本概念。本書貫穿兩個項目:Rainbow 項目和Book 項目。Rainbow 是一個實踐項目,意在練習所學的知識。這是一個簡化的項目,僅用于學習。Book 是一個虛構的項目,我用它演示如何把Git 的某些功能用到更真實的項目中。下面深入介紹一下兩個項目,順便說說本書的內容編排。[ 備注 ]前言有一些你還不熟悉的術語,例如倉庫和提交。不要擔心,我將在接下來的章節(jié)解釋所有概念。Rainbow 項目我們將通過Rainbow 項目學習Git 基礎知識。為了循序漸進,你應該逐章閱讀第1 章到第12 章,并在自己的計算機中完成每一道練習。例如,第4 章中的練習假定你已經完成第1 章、第2 章和第3 章中的練習。倉庫根本而言,倉庫是Git 項目的副本。首先,為了開發(fā)Rainbow 項目,你將創(chuàng)建一個名為rainbow 的本地倉庫。隨后(在第7 章),你將創(chuàng)建一個名為rainbowremote的遠程倉庫。最后,第8 章模擬與朋友合作開發(fā)Rainbow 項目,再創(chuàng)建一個名為friend-rainbow 的本地倉庫。從第8 章開始,每當提到你的朋友做某事時,你都必須在friend-rainbow 倉庫中執(zhí)行相關操作。[ 備注 ]當我說到Rainbow(首字母大寫)項目時,我指的是整個項目:從一個倉庫開始,最終包含三個倉庫。當我提到rainbow 項目目錄或rainbow倉庫時(首字母小寫),我指的是Rainbow 項目中特定的本地倉庫。提交在Rainbow 項目中,你將創(chuàng)建和編輯文件,列出構成一道彩虹的顏色,以及一些其他顏色。這并不是應由Git 控制的真實項目,而是一個簡化的項目,目的是讓你專注于學習,而不分心構建復雜的功能。在整本書中,我將使用圖表說明Rainbow 項目中發(fā)生的事情。每次向Rainbow項目添加一個顏色,你都要向倉庫發(fā)起一次提交(commit)。一個提交基本上代表項目的一個版本。在圖表中,提交由添加的顏色繪制的圓圈表示,提交的名稱也使用顏色的名稱。例如,將要添加到Rainbow 項目中的第一個顏色是紅色(red),因此代表該提交的圓圈將被涂成紅色,我們將其稱為red 提交。為了照顧色覺缺失的讀者,我將在圖表中注上提交的名稱(或名稱的縮寫)。圖1 是紅色提交的圖表示例。附錄鑒于本書的編排方式,你應該從第1 章?第12 章依次閱讀,但是在某些情況下,你可能希望或需要從特定的章節(jié)開始。例如:?? 你已經完成了整本書中的練習,想從特定的章節(jié)開始復習。?? 前一章的 Rainbow 項目出現(xiàn)了問題,你無法解決,想從新的一章重新開始。遇到這種情況,你可以參照附錄A 中的說明重新創(chuàng)建Rainbow 項目,達到某一章開頭的狀態(tài)。附錄B 涵蓋每一章介紹的命令,作為快速參考指南。附錄C 說明本書圖表使用的視覺語言。Book 項目Book 是一個虛構項目,我用它演示在更真實的項目中如何使用Git。這個項目假設我在寫一本書,使用Git 對文件進行版本控制。這本書由10 個章節(jié)組成,對應10 個文本文件,一章一個:chapter_one.txt、chapter_two.txt 等。有時,我也會模擬與合著者和(或)編輯一起參與圖書項目的情況。這些討論放在Book示例項目插注部分。Book 項目不是我們的關注重點。我只是通過它進一步演示和說明Git 的某些功能。除了Book 示例項目插注之外,本書還有一些其他插注。下面具體說明。書中的插注下面簡要說明本書中的幾種插注。Book 示例項目如前所述,Book 示例項目插注基于Book 項目提供其他Git 功能和命令的說明和示例。跟我做跟我做插注列出你應在計算機中執(zhí)行的步驟。步驟中的粗體命令必須在命令行中輸入并執(zhí)行。有輸出的命令都會提供示例輸出。給出的輸出基于我在寫作本書時開發(fā)的Rainbow 項目,由macOS 操作系統(tǒng)生成,不過在Microsoft Windows 中的輸出應該是相同的。如果Microsoft Windows 和macOS 的輸出差異巨大,我會在文中指出。命令一覽命令一覽插注介紹有用的命令,其中一些命令在跟我做插注中有用到。附錄B 還提供了按章節(jié)分組的所有重要命令的完整列表,作為參考。圖解圖解插注通過圖表說明Rainbow 項目中發(fā)生的事情。這種插注(以及插圖)用到兩個重要圖表:Git 圖和倉庫圖。Git 圖在第2 章介紹,倉庫圖從第4 章開始使用。書中的每個圖表都是一步步得來的,文中有相應說明。附錄C 還提供了書中使用的視覺語言的概述,作為參考。備注備注插注提供與正文相關的有用信息。配套倉庫我的目標是在本書中提供學習Git 所需的大部分信息,但有些技術和流程變化頻繁,無法在書中記錄。我在GitHub 中創(chuàng)建了公開倉庫Learning Git(https://github.com/gitlearningjourney/learning-git),提供相關技術和流程的最新信息。除此之外,該倉庫還包含:?? 下載 Git 的說明。?? 使用托管服務的資源鏈接。?? 為了訪問遠程倉庫,對 HTTPS 或 SSH 的設置。需要查閱Learning Git 倉庫獲得更多指導時,我會在書中指出。這不是一本什么樣的書這不是一本參考書,不涵蓋每一個Git 命令(相信我,特別多)。這也不是一份Git 高級指南。許多Git 功能在本書中沒有討論,因為它們對于我想教你的基本操作不是必需的。書中涵蓋的功能經過我的精心挑選。我的目標是讓你對Git 基礎知識建立清晰的感性認知,為繼續(xù)學習其他功能奠定堅實的基礎。本書也不會告訴你應該使用什么樣的Git 工作流程,或者應該如何使用Git 的各項功能。我盡可能避免發(fā)表個人見解,而是專注于教你認識工具。至于如何使用工具,根據每個人的背景和偏好,各有不同。本書盡量不約束你的選擇。例如,你可以使用自己喜歡的任何文本編輯器或托管服務完成書中的練習。章節(jié)編排本書分為兩個邏輯部分。第一部分(第1~5 章)學習在自己的計算機中操作本地倉庫。第6~12 章還將學習使用托管服務和遠程倉庫。下面簡要介紹每一章的內容。?? 第 1 章為使用 Git 管理項目做好準備:安裝 Git,學習一些命令行基礎知識,設置Git,為本書后面用到的項目創(chuàng)建目錄,以及準備文本編輯器。?? 第2章把項目目錄變成Git倉庫。我將介紹表示Git不同區(qū)域的Git圖,包括工作目錄、暫存區(qū)域、提交歷史和本地倉庫。本章末尾將在項目目錄中創(chuàng)建第一個文件。?? 第 3 章學習并執(zhí)行在本地倉庫中進行首次提交的兩個主要步驟。?? 第 4 章學習分支,了解分支是什么、如何創(chuàng)建分支、如何切換分支,以及如何判斷所在的分支。?? 第 5 章學習兩種合并,執(zhí)行快進合并。?? 第 6 章為使用遠程倉庫做準備,首先選擇托管服務,然后設置身份驗證信息,通過HTTPS 或SSH 連接遠程倉庫。?? 第 7 章討論使用本地和遠程倉庫的不同方法。你將學習如何創(chuàng)建遠程倉庫和上傳數據。?? 第 8 章開始模擬與其他人一起處理 Git 項目。為此,你要創(chuàng)建第二個本地倉庫,假裝它屬于你的朋友。這位朋友在自己的計算機中與你一道開發(fā)Rainbow 項目。在此過程中,你將學習如何克隆遠程倉庫和獲取數據。?? 第 9 章執(zhí)行三方合并,學習獲取數據和拉取數據之間的區(qū)別。?? 第 10 章通過一個示例說明如何解決三方合并中的沖突。?? 第 11 章學習變基。這是把一個分支的改動整合到另一個分支的第二種方式(第一種是合并)。?? 第12章學習拉取請求(也叫合并請求)及其對Git項目協(xié)作的促進。?? 本書還有三篇附錄,內容見附錄一節(jié)。排版約定本書使用以下排版約定。斜體(Italic)表示新術語、URL、電子郵件地址和重點。等寬字體(Constant width)表示命令、命令輸出、文件名、目錄名、分支名、倉庫名和其他屏上文本。等寬粗體(Constant width bold)表示應由用戶鍵入或輸入的命令或其他文本。帶尖括號的等寬字體()表示應替換為用戶提供的值或根據上下文確定的值的文本。OReilly 在線學習平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。公司獨有的專家和改革創(chuàng)新者網絡通過OReilly 書籍、文章以及在線學習平臺,分享他們的專業(yè)知識和實踐經驗。OReilly 在線學習平臺按照您的需要提供實時培訓課程、深入學習渠道、交互式編程環(huán)境以及來自OReilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網站:https://www.oreilly.com/。聯(lián)系我們任何有關本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術咨詢(北京)有限公司勘誤、示例和其他信息,請訪問https://oreil.ly/learning-git 獲取。要了解更多OReilly 圖書和課程信息,請訪問http://oreilly.com。我們的LinkedIn:http://linkedin.com/company/oreilly-media。我們的Twitter:http://twitter.com/oreillymedia。我們的YouTube:http://youtube.com/oreillymedia。致謝感謝在本書寫作過程中支持我的所有人。感謝我的朋友和家人,其中一些人被迫成為本書早期版本的測試讀者。感謝在這個創(chuàng)意項目實施過程中給予我支持的整個OReilly 團隊。感謝所有技術審校和測試讀者,謝謝你們一遍遍閱讀,向我提供寶貴的反饋意見。對了,還要感謝我的伴侶耐心守候,因為這本書的出版日期一再推遲。
Anna Skoulikari是一位創(chuàng)意人士,她利用自己的溝通技巧娓娓道來,以簡單、形象和可視化的方式教授Git。她通過各種媒介教授Git,包括評價很高的在線課程。她的技術工作經驗豐富,曾擔任用戶體驗設計師、前端開發(fā)人員和技術作家。
目錄 [ 前言] 1 [ 第1 章] Git 和命令行. 11 1.1 Git 是什么 11 1.2 圖形用戶界面和命令行 .13 1.3 打開命令行窗口 13 1.4 在命令行中執(zhí)行命令 15 1.5 安裝Git .18 1.6 命令選項和參數 19 1.7 清除命令行 19 1.8 打開文件系統(tǒng)窗口 20 1.9 操作目錄 21 1.10 關閉命令行 29 1.11 設置Git 配置 29 1.12 準備文本編輯器 .32 1.13 集成式終端 32 1.14 小結 33 [ 第2 章] 本地倉庫. 35 2.1 當前情況 35 2.2 倉庫簡介 36 2.3 初始化本地倉庫 36 2.4 Git 的區(qū)域 40 2.5 為 Git 項目添加文件 45 2.6 小結 .47 [ 第3 章 ] 發(fā)起提交 49 3.1 當前情況 49 3.2 為什么要提交 .50 3.3 提交的兩個步驟 50 3.4 查看提交列表 .58 3.5 小結 .60 [ 第4 章] 分支. 61 4.1 本地倉庫的狀態(tài) 61 4.2 為什么使用分支 63 4.3 未修改文件和已修改文件 67 4.4 在分支中提交 .70 4.5 創(chuàng)建分支 74 4.6 HEAD 是什么 .76 4.7 切換分支 78 4.8 在另一個分支中工作 81 4.9 小結 .83 [ 第5 章] 合并. 85 5.1 本地倉庫的狀態(tài) 85 5.2 合并簡介 86 5.3 合并的類型 87 5.4 執(zhí)行快進合并 .93 5.5 檢出提交 .105 5.6 創(chuàng)建并切換到新分支 110 5.7 小結 111 [ 第6 章] 托管服務和身份驗證113 6.1 托管服務和遠程倉庫 114 6.2 設置托管服務賬戶 . 114 6.3 設置身份驗證憑據 . 115 6.4 小結 118 [ 第7 章] 創(chuàng)建并推送到遠程倉庫119 7.1 本地倉庫的狀態(tài) . 119 7.2 開始Git 項目的兩種方式 120 7.3 本地和遠程倉庫之間的交互 .122 7.4 為什么使用遠程倉庫 122 7.5 創(chuàng)建遠程倉庫并上傳數據 .124 7.6 直接在托管服務中處理遠程倉庫 138 7.7 小結 139 [ 第8 章] 克隆和獲取141 8.1 本地倉庫和遠程倉庫的狀態(tài) .141 8.2 克隆遠程倉庫 142 8.3 刪除分支 .151 8.4 Git 協(xié)作和分支 154 8.5 整合遠程倉庫的改動 162 8.6 刪除分支(續(xù)) .167 8.7 小結 169 [ 第9 章] 三方合并171 9.1 本地倉庫和遠程倉庫的狀態(tài) .171 9.2 三方合并的重要性 .173 9.3 設定三方合并情景 .177 9.4 定義上游分支 178 9.5 在提交之間多次編輯同一個文件 182 9.6 與其他人同時處理不同的文件 190 9.7 三方合并實踐 194 9.8 從遠程倉庫中拉取改動 201 9.9 本地倉庫和遠程倉庫的狀態(tài) .205 9.10 小結 205 [ 第10 章] 合并沖突.207 10.1 本地倉庫和遠程倉庫的狀態(tài) 207 10.2 合并沖突簡介 209 10.3 如何解決合并沖突 210 10.4 設置合并沖突場景 211 10.5 解決合并沖突的流程 .217 10.6 解決合并沖突實踐 220 10.7 與遠程倉庫保持更新 .223 10.8 同步倉庫 224 10.9 本地倉庫和遠程倉庫的狀態(tài) 227 10.10 小結 .227 [ 第11 章] 變基.229 11.1 本地倉庫和遠程倉庫的狀態(tài) 229 11.2 在Git 中集成改動 231 11.3 變基的作用何在 232 11.4 設置變基示例 236 11.5 取消暫存和暫存文件 .238 11.6 準備變基 250 11.7 變基過程的五個階段 .252 11.8 變基和合并沖突 257 11.9 變基分支實踐 258 11.10 變基的黃金法則 .263 11.11 同步倉庫 266 11.12 本地倉庫和遠程倉庫的狀態(tài) 269 11.13 小結 .269 [ 第12 章] 拉取請求(合并請求).271 12.1 本地倉庫和遠程倉庫的狀態(tài) 271 12.2 拉取請求簡介 273 12.3 托管服務細節(jié) 274 12.4 為什么使用拉取請求 .275 12.5 了解如何合并拉取請求 277 12.6 準備發(fā)起拉取請求 280 12.7 定義上游分支更簡單的方法 283 12.8 在托管服務中創(chuàng)建拉取請求 286 12.9 審核和批準拉取請求 .287 12.10 合并拉取請求 .288 12.11 刪除遠程分支 .290 12.12 同步并清理本地倉庫 291 12.13 本地倉庫和遠程倉庫的狀態(tài) 295 12.14 小結 .296 [ 結語] 297 [ 附錄A] 章節(jié)前需設置.299 [ 附錄B] 命令速查表.327 [ 附錄C] 視覺語言參考.331
|