目錄
1.知識點概述
2.版本控制工具作用
3.git和SVN
4.git介紹
5.git安裝
6.工作區 暫存區 版本庫概念
7.本地文件添加到暫存區和提交到版本庫
8.文件的修改和還原
9.查看提交的歷史版本信息
10.版本差異比較
11.刪除文件
12.本地版本管理設置忽略目錄
13.遠程git倉庫介紹
14.創建遠程倉庫
15.本地倉庫中項目推送到遠程倉庫
16.將遠程倉庫內容克隆到本地
17.克隆應用場景
18.生成rsa密鑰對
19.設置本地ssh秘鑰
20.遠程倉庫ssh公鑰設置
21.使用ssh地址進行倉庫操作注意事項
22.分支介紹
23.分支的切換
24.合并分支和解決沖突
25.往遠程非空倉庫推動本地倉庫內容
26.git提交代碼操作
27.protobu部署
1.知識點概述
1.1. 版本控制系統
-?集中式版本控制系統
??> 集中式版本控制系統,版本庫是集中存放在中央服務器的,而干活的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然后開始干活,干完活了,再把自己的活推送給中央服務器。
??>
??> 集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在局域網內還好,帶寬夠大,速度夠快,可如果在互聯網上,遇到網速慢的話,那就GG了.??
2.版本控制工具作用
3.git和SVN
> 版本庫又名倉庫,英文名**repository**,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
## 2.1 概念
-?工作區
??-?用戶自己創建的目錄 -> 存放源代碼
??-?本地的版本庫也需要放到工作區中
??-?每個工作區中都可以創建一個版本庫
??-?只有工作區的`新文件`才需要添加到暫存區
-?版本庫
??-?就是一個目錄: 名字-> .git
??-?管理用于提交的代碼
-?暫存區
??-?首先創建新文件 -> 在工作區 (和版本庫沒有關系)
??-?將新文件添加到本地倉庫中 -> 新文件被保存在了暫存區 (還是沒有進行版本管理)
??-?將暫存區數據提交到版本庫 -> 這時候就可以進行版本管理了
??-?暫存區也是一個目錄: stage/index
4.git介紹
5.git安裝
創建版本庫
??-?在工作區中鼠標右鍵
????
????
????
-?添加新文件
??-?在工作區右鍵菜單
????
????
6.工作區 暫存區 版本庫概念
7.本地文件添加到暫存區和提交到版本庫
8.文件的修改和還原
9.查看提交的歷史版本信息
10.版本差異比較
11.刪除文件
12.本地版本管理設置忽略目錄
13.遠程git倉庫介紹
14.創建遠程倉庫
15.本地倉庫中項目推送到遠程倉庫
16.將遠程倉庫內容克隆到本地
17.克隆應用場景
18.生成rsa密鑰對
19.設置本地ssh秘鑰
20.遠程倉庫ssh公鑰設置
21.使用ssh地址進行倉庫操作注意事項
22.分支介紹
23.分支的切換
24.合并分支和解決沖突
25.往遠程非空倉庫推動本地倉庫內容
-?遠程倉庫設置公鑰
??-?進入當前用戶的設置界面
????
????
????
??-?使用ssh地址遇到的問題
????
????```shel
????# 解決方案: 需要修改tortoisegit 使用的 ssh工具
????# 需要在 tortoisegit 設置窗口中進行修改
????```
????-?默認的路徑
??????
????-?修改后的路徑
??????

## 6.2 切換分支


## 6.3 合并分支
> 兩個分支進行合并(master, new分支), 最終要合并到那個分支(master), 就先切換到那個分支(master), 切換完成之后, 在選擇把哪個分支(new分支)合并到當前分支(master)


## 6.4 解決沖突


27.protobu部署
直接推送 -> 失敗

> 失敗的原因:
>
> - 遠程倉庫不是空的
>???- 有一個默認分支,?`master`
> - 本地倉庫, 不是空的
>???- 有一個默認分支,?`master`
> - 遠程倉庫和本地倉庫默認分支名字相同, 但是這兩個分支沒有任何關系
>???- 沒有關系的分支進行合并 -> 失敗
-?解決方案
??> 1. 將遠程倉庫拉取到本地(pull)
??>????- 拉取: 直接將遠程倉庫分支中的信息和本地分支進行合并
??>????- 獲取: 將遠程倉庫分支復制到本地的另外一個分支中, 不會合并
??>??????- 分支名字: fetch_head
??> 2. 將兩個分支進行強行合并
??> 3. 將本地分支數據推送動到遠程倉庫
-?通過進行獲取操作, 得到新分支`FETCH_HEAD`

-?合并分支: 得到的新分支`FETCH_HEAD`分支合并到本地`master`分支


-?將本地倉庫推動到遠程倉庫

# 8. 使用最多的場景
> 遠程倉庫分支和本地倉庫分支有關系的情況, 該如何操作?
>
> - 本地:
>???- 修改代碼提交到本地倉庫
>???- 提交到遠程倉庫
>?????- 不能直接提交
>?????- 在推送之前應該將遠程倉庫代碼`拉取`到本地
>???????- 進程代碼合并
>?????????- 有可能沖突 -> 手動解決沖突
>?????- 將新的代碼推動到遠程倉庫