# 前言
## 關于專業
怎樣才能稱之為專業人員?是取決你對專業知識掌握的多少嗎?是取決你對問題的理解能力嗎?當然這些都是,但是這些都僅僅是片面的理解。
作為一個專業人員要學會使用一個正確的工具和培養一個良好的習慣。例如:一個五星級廚師不可能使用廉價的廚具來烹飪佳肴,因為他知道工欲善其事,必先利其器。同樣的,一個頂尖的職業網球選手也不可能從來不進行耐力訓練,因為他知道一個非常簡單的道理,那就是打網球不僅僅只是擊球過網這么簡單。
同樣道理,一個頂級的程序員,網絡開發人員或網頁設計師,他不可能從不使用版本控制,因為他知道在開發過程中犯錯是在所難免的,他也知道在團隊合作中如果不進行安全,簡單有效的協作與溝通,而只是草草敷衍或者不緊密合作,在之后的開發階段中將要花費更多的時間和精力。
不要介意去花費一點點時間來學習版本控制。它將幫助你在專業之路上邁出一大步。
## 關于這本書
學習這本書的目的是讓你了解版本控制,并且盡可能快速簡單的掌握 Git。但是和另外一些關于介紹版本控制的圖書不一樣,閱讀這本書并不需要你有很專業的 IT 或者電腦背景知識,它也面向那些編程的初學者,軟件構架師,或者是項目經理。在技術方面你也不需要有很多專業知識,我們會以循序漸進的方式幫助你來理解版本控制和掌握 Git。
話雖如此,Git和版本控制終歸還是非常復雜且具有高度的技術性的。我不能保證非常全面的闡述其中的每一個原理,但是我將盡可能的向你解釋和分析那些在實際應用中可能出現的案例,可能會被使用到的工作流程和相關的知識背景。
因為每個人都有他自己的專業背景,所以很難為每一個讀者定義一個共同的出發點,出于這個原因,在本書的附錄中我們會提供了一些基礎知識的相關文檔。
* 如果你不能確定是否要使用 Git 作為你的版本控制系統,你可以嘗試閱讀一下。[為什么選擇 Git?](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/why-git)
* 如果你在考慮是否從 SVN 中解放出來,那么在這里 [從 Subversion 過渡到 Git](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/from-subversion-to-git) 你可以找到一些有用的幫助,它會給你列舉出這兩種版本控制系統間的差別。
* 如果你需要了解一些關于 Git 命令界面的操作,那么你一定要看看這個 [命令 101](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/command-line-101)。
祝你愉快的學習 Git!
- Learn Version Control with Git 中文版
- 前言
- Part 1 - 基礎知識
- 什么是版本控制?
- 為什么要使用版本控制系統?
- 準備工作
- 版本控制的基本工作流程
- 從一個未被納入版本控制的項目開始
- 從一個已被納入版本控制的項目開始
- 工作在你的項目上
- Part 2 - 分支與合并
- 分支可以改變你的生命
- 在分支上工作
- 暫時保存更改
- 切換一個本地分支
- 合并改動
- 分支的工作流程
- Part 3 - 遠程倉庫
- 關于遠程倉庫
- 連接一個遠程倉庫
- 查看遠程數據
- 整合遠程的改動
- 發布一個本地分支
- 刪除分支
- Part 4 - 高級應用
- 撤銷操作
- 用 diff 來檢查改動
- 處理合并沖突
- Rebase 代替合并
- 子模塊
- git-flow 的工作流程
- 使用 SSH 公鑰驗證
- Part 5 - 工具與服務
- 桌面應用程序
- 比較和整合工具
- 代碼托管服務
- 更多學習資源
- 附錄
- 版本控制的最佳實踐
- 命令 101
- 從 Subversion 過渡到 Git
- 為什么選擇 Git