版本管理工具GIT篇
一、版本管理工具干什么用的?
- 備份文件 作用同U盤 網盤
- 保存每天的成果 若是本地文件丟失 損壞 找備份
- 如 打游戲時候的存檔
- 記錄歷史
- 網盤 U盤存儲的是文件最新狀態 歷史操作沒有
- 作用同 history命令 找到歷史操作的版本 記錄 修改時間 修改內容等(提交時候的備注)
- 回滾到歷史版本
- 若是當前提交了不想要的操作 可以找到歷史版本 把狀態恢復到之前操作過的任意歷史的狀態
- 托管文件可以多端共享
- 效果類似於 icloud雲備份 可以在不同的設備上 拿到相同的文件
- 場景一在公司提交了代碼之后 回到家 登陸自己的賬戶 pull 到本地
- 管理員創建倉庫 搭建好項目環境之后 團隊成員 pull到自己的設備 共同開發
二、版本管理工具發展歷史
三、GIT下載和安裝
- 安裝GIT環境---windows
- 安裝
- 安裝GIT環境---Linux
- CentOS下 軟件包管理器
- git --help 查看幫助
- untu下安裝 同理 apt-get -update 更新源 apt-get install git 安裝git
- Git --help查看幫助
四、注冊賬戶
- 登錄官網
- 注冊
- 選擇套餐
- 發送驗證郵件
- 登錄帳號 看到自己的項目
五、新建一個項目
- 注意點
- 創建完成
六、Linux下檢出項目到本地
- Clone or download
- 克隆到本地
- 檢出到本地之后 可以在本地工作區 開發 提交...
七、Linux環境下第一次提交項目
- 工作區修改文件 wq保存退出
- git status 查看工作區狀態
- git add 對文件建立 跟蹤 查看狀態
- git commit 提交
- 提交之后 git status查看工作區狀態 (目前只是在本地工作區的操作 還未提交到github)
- git push到 遠程github上
- 登錄github查看 推送成功
八、windows環境下檢出項目和提交項目
- 安裝好本地客戶端之后 登錄 本地客戶端 在github上
- 選擇本地工作區目錄
- 克隆到本地之后
- 在本地 編輯器打開文件
- 本地新建文件 編輯
- 本地工作區修改文件 提交 同步
- 同步到github
九、關於代碼沖突
- 解決沖突 團隊合作 代碼沖突 工具無法判斷 取舍
- 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) 同步
或者是
十、回滾到歷史版本
a) 場景:新老同事 最新版本的代碼如果修復的話代價太大 直接恢復到之前的版本
b) 回滾
- git log 查看文件歷史提交
- 需要回滾到哪個時間點 復制commit id git reset --hard commit id
hard:是當前版本的指針 這個指針指向哪個時間點的 commit id 就相當於代碼回退到那個時間點的狀態
- git reflog 列出當前版本之前的所有版本號
- 還原到最新版本
十一、建立里程碑 (軟件上的版本號)
- 里程碑:軟件上的版本號 每一個版本號表示一段開發的完結 以及下一階段工作的開始 軟件發布之后 會帶着對應的版本號
- 建立里程碑 方便於把一個完整的軟件發布出去 也方便於快速的定位某一個版本的某個問題
- 登錄github
- 后期維護的時候 找到對應的版本 可以下載源碼 可以回退等等
十二、分支開發之分支合並
- 應用場景:新反饋了一個bug但是當前master(主)分支已經推送了新的功能的代碼 於是呢 就不能在主分支發布 有可能把沒測試過的代碼帶到外面去 創建新的分支 以已經發布的代碼為基礎修復bug 修復之后 再合並分支
- 創建新的分支 當前工作區切換到分支
- merge 合並分支
十三、分支開發之分支合並
十四、關於多人合作
- 多用客戶端和工具 少用命令行 除非是在Linux服務器上直接開發
- 每次提交前 diff自己的代碼 以免提交錯誤的代碼
- 下班回家前 整理好自己的工作區(哪些代碼是必須的 哪些是調試代碼等等)
- 並行的項目 使用分支開發
- 遇到沖突的時候 搞明白沖突的原因 千萬不要隨意的丟棄別人的代碼
- 產品發布之后 記得打tag 方便將來拉分支修bug