為什麼網際網路巨頭們紛紛使用Git而放棄SVN?(內含Git核心命令與原理總結)
阿新 • • 發佈:2020-09-14
## 寫在前面
> 最近發現很多小夥伴對於工作中的一些基本工具的使用還不是很瞭解,比如:Git這個分散式的程式碼管理倉庫,很多小夥伴就不是很瞭解,或者說不是很熟悉。甚至有些小夥伴都沒聽說過Git,就只會用個SVN。殊不知,當今各大網際網路巨頭和新興起的網際網路黑馬公司,基本都是用的Git,而基本廢棄了對SVN的使用。為什麼呢?我們一起往下看。
## Git與SVN的區別
### 儲存方式不同
Git把內容按元資料方式儲存類似k/v資料庫,而SVN是按檔案(新版SVN已改成元資料儲存)
這裡,我們給出一個簡單的Git使用示例。
```bash
cd .git/objects/df/
git cat-file -p df70460b4b4aece5915caf5c68d12f560a9de56e
echo 'version1' > text.txt
git hash-object -w text.txt
```
### 使用方式不同
從本地把檔案推送遠端服務,SVN只需要commint 而Git需要 add、commint、push 三個步驟。
比如,我們使用下圖來模擬SVN的使用過程。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200913225124392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0,size_16,color_FFFFFF,t_70#pic_center)
我們可以使用下圖來模擬Git的使用過程。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200913225136105.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0,size_16,color_FFFFFF,t_70#pic_center)
### 版本的管理模式不同
Git是一個分散式的版本管理系統,而要SVN是一個遠端集中式的管理系統。
例如,我們可以使用下圖來表示SVN的集中式管理。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200913225146181.png#pic_center)
我們可以使用下圖來表示Git的分散式管理。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20200913225155901.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2wxMDI4Mzg2ODA0,size_16,color_FFFFFF,t_70#pic_center)
## Git核心命令總結
### Git客戶端安裝
官方客戶端下載:[https://git-scm.com/downloads](https://git-scm.com/downloads)
其他客戶端下載:[https://tortoisegit.org/download/](https://tortoisegit.org/download/)
### Git命令的使用
(1)基於遠端倉庫克隆至本地
```bash
gi