版本管理工具GIT篇
1、版本管理工具幹什麼用的?git
- 備份文件 做用同U盤 網盤
- 保存天天的成果 如果本地文件丟失 損壞 找備份
- 如 打遊戲時候的存檔
- 記錄歷史
- 網盤 U盤存儲的是文件最新狀態 歷史操做沒有
- 做用同 history命令 找到歷史操做的版本 記錄 修改時間 修改內容等(提交時候的備註)
- 回滾到歷史版本
- 如果當前提交了不想要的操做 能夠找到歷史版本 把狀態恢復到以前操做過的任意歷史的狀態
- 託管文件能夠多端共享
- 效果相似於 icloud雲備份 能夠在不一樣的設備上 拿到相同的文件
- 場景一在公司提交了代碼以後 回到家 登錄本身的帳戶 pull 到本地
- 管理員建立倉庫 搭建好項目環境以後 團隊成員 pull到本身的設備 共同開發
2、版本管理工具發展歷史github

3、GIT下載和安裝windows
- 安裝GIT環境---windows
- 下載客戶端 https://desktop.github.com/

- 安裝

- 安裝GIT環境---Linux
- CentOS下 軟件包管理器


- git --help 查看幫助

- untu下安裝 同理 apt-get -update 更新源 apt-get install git 安裝git


- Git --help查看幫助

4、註冊帳戶服務器
- 登陸官網

- 註冊

- 選擇套餐

- 發送驗證郵件

- 登陸賬號 看到本身的項目

5、新建一個項目編輯器
- 注意點

- 建立完成

6、Linux下檢出項目到本地工具
- Clone or download

- 克隆到本地

- 檢出到本地以後 能夠在本地工做區 開發 提交...
7、Linux環境下第一次提交項目 測試
- 工做區修改文件 wq保存退出

- git status 查看工做區狀態

- git add 對文件創建 跟蹤 查看狀態

- git commit 提交

- 提交以後 git status查看工做區狀態 (目前只是在本地工做區的操做 還未提交到github)

- git push到 遠程github上

- 登陸github查看 推送成功

8、windows環境下檢出項目和提交項目spa
- 安裝好本地客戶端以後 登陸 本地客戶端 在github上

- 選擇本地工做區目錄

- 克隆到本地以後

- 在本地 編輯器打開文件

- 本地新建文件 編輯


- 本地工做區修改文件 提交 同步

- 同步到github


9、關於代碼衝突命令行
- 解決衝突 團隊合做 代碼衝突 工具沒法判斷 取捨
- Linux下如何解決衝突

a) git pull 把最新的代碼拉下來 合併衝突指針

b) git status 查看當前工做區狀態

c) 查看變動記錄 git diff

d) 打開衝突文件 人爲解決衝突

e) 本地工做區解決完衝突以後 git status git add git commit git push 推送到github
f) 若是有後續操做 本地工做區 須要先將git pull 將遠程上的最新的文件拉到本地 再進行後續操做
- Windows下如何解決衝突?
a) windows下衝突

b) 本地編輯器打開衝突文件 先手動解決衝突

c) 同步

或者是

10、回滾到歷史版本
a) 場景:新老同事 最新版本的代碼若是修復的話代價太大 直接恢復到以前的版本
b) 回滾
- git log 查看文件歷史提交

- 須要回滾到哪一個時間點 複製commit id git reset --hard commit id

hard:是當前版本的指針 這個指針指向哪一個時間點的 commit id 就至關於代碼回退到那個時間點的狀態
- git reflog 列出當前版本以前的全部版本號

- 還原到最新版本

11、創建里程碑 (軟件上的版本號)
- 里程碑:軟件上的版本號 每個版本號表示一段開發的完結 以及下一階段工做的開始 軟件發佈以後 會帶着對應的版本號
- 創建里程碑 方便於把一個完整的軟件發佈出去 也方便於快速的定位某一個版本的某個問題
- 登陸github


- 後期維護的時候 找到對應的版本 能夠下載源碼 能夠回退等等
12、分支開發之分支合併
- 應用場景:新反饋了一個bug可是當前master(主)分支已經推送了新的功能的代碼 因而呢 就不能在主分支發佈 有可能把沒測試過的代碼帶到外面去 建立新的分支 以已經發布的代碼爲基礎修復bug 修復以後 再合併分支
- 建立新的分支 當前工做區切換到分支

- merge 合併分支



十3、分支開發之分支合併

十4、關於多人合做
- 多用客戶端和工具 少用命令行 除非是在Linux服務器上直接開發
- 每次提交前 diff本身的代碼 以避免提交錯誤的代碼
- 下班回家前 整理好本身的工做區(哪些代碼是必須的 哪些是調試代碼等等)
- 並行的項目 使用分支開發
- 遇到衝突的時候 搞明白衝突的緣由 千萬不要隨意的丟棄別人的代碼
- 產品發佈以後 記得打tag 方便未來拉分支修bug