前端工具與環境基礎系列:程式碼管理工具(gitee)(三)
1、版本控制
版本控制(Revision control)是一種在開發的過程中用於管理我們對檔案、目錄或工程等內容的修改歷史,方便檢視更改歷史記錄,備份以便恢復以前的版本的軟體工程技術。
- 實現跨區域多人協同開發
- 追蹤和記載一個或者多個檔案的歷史記錄
- 組織和保護你的原始碼和文件
- 統計工作量
- 並行開發、提高開發效率
- 跟蹤記錄整個軟體的開發過程
- 減輕開發人員的負擔,節省時間,同時降低人為錯誤
簡單說就是用於管理多人協同開發專案的技術。
沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟體開發過程中將會引入很多問題,如軟體程式碼的一致性、軟體內容的冗餘、軟體過程的事物性、軟體開發過程中的併發性、軟體原始碼的安全性,以及軟體的整合等問題。
無論是工作還是學習,或者是自己做筆記,都經歷過這樣一個階段!我們就迫切需要一個版本控制工具!
2、常見的版本控制工具
我們學習的東西,一定是當下最流行的!
主流的版本控制器有如下這些:
- Git
- SVN(Subversion)
- CVS(Concurrent Versions System)
- VSS(Micorosoft Visual SourceSafe)
- TFS(Team Foundation Server)
- Visual Studio Online
版本控制產品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現在影響力最大且使用最廣泛的是Git與SVN
3、版本控制分類
4、svn與git對比
1、 svn
svn是一種集中式的版本控制系統,版本庫是集中存放在中央伺服器上的,而幹活的時候,用的都是自己的電腦,所以首先需要從中央伺服器哪裡得到最新的版本,然後幹活,幹完活後,需要把自己做完的活推送到中央伺服器。集中式版本控制系統必須有網際網路才能工作,如果在區域網還可以,頻寬夠大,速度夠快,如果在網際網路下,網速慢的話,就會很慢。
集中式管理方式在一定程度上看到其他開發人員在幹什麼,而管理員也可以很輕鬆的掌握每一個人的開發許可權。
缺點:容錯性差、伺服器單點故障
2、git
GIT是一個分散式的版本控制系統,那麼他就沒有中央伺服器,每一個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網,因為版本都在自己的電腦上。既然每個人的電腦都有一個版本庫,那麼多人如何協作呢?比如自己修改了A檔案,別人也修改了A檔案,這時,你們兩個只需要把各自的修改推給對方,就可以互相看到對方修改的了
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-IakNYfV4-1606912919996)()]
3、git工作流程
1、從遠端倉庫中克隆Git資源作為本地倉庫
2、從本地checkout程式碼後進行程式碼修改
3、在提交前先將程式碼提交至暫存區
4、提交修改,提交至本地倉庫,本地倉庫中儲存修改的各個歷史版本
5、修改完成後,需要與團隊成員共享程式碼,可以把程式碼oush到遠端倉庫
git工作流程圖
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-GL6SIIMR-1606912920009)()]
4、git安裝
5、使用git管理檔案版本
1、建立版本庫
- Git GHI(圖形工具)
- Git Bash (命令列工具)
6、git配置
檢視配置
git config -l // 檢視所有配置
git config --global --list //檢視全域性配置 (使用者自己配置的)
//配置使用者名稱和郵箱(必須配置)
git config --global user.name '***'
git config --global user.email '***'
git config --system -list //檢視系統配置 (安裝的時候系統預設配置)
7、git操作
- 建立全新的倉庫
//建立一個全新的倉庫
git init
//克隆遠端倉庫
git clone + url
-
git的檔案操作
- 未跟蹤狀態:還有一提交的暫存區
- 跟蹤狀態:
- 未修改:檔案內容與快照內容一致
- 已修改:檔案內容與快照內容不一致
- 暫存狀態:提交到暫存區的檔案
//檢視狀態 git status
5、遠端倉庫
5.1 新增遠端庫
5.1.1 、在github上建立倉庫
5.1.2 SSH協議
5.1.2.1 什麼是ssh?
SSH是(安全外殼協議)的縮寫,由IEIF的網路小組所制定。SSH是目前較可靠,專門為遠端登入會話賀其他網路服務提供安全性的協議。利用SSH協議可以有效的防止遠端管理過程中的資訊洩露
6.1.2.2 基於金鑰的安全驗證
使用ssh協議通訊時,推薦使用基於金鑰的驗證方式。你必須為自己建立一隊金鑰,並把公用金鑰放在需求訪問的伺服器上。如果你需要連結到SSH伺服器ss上,客戶端軟體就會向伺服器傳送請求,請求用你的金鑰進行安全驗證。伺服器收到請求後,先在該伺服器上你的主目錄下尋找你的公用金鑰,然後把他和你傳送過來的公用金鑰進行比較。如果兩個金鑰一致,伺服器就會用公用金鑰加密 ‘質詢’ 並把它傳送給客戶端軟體。客戶端軟體收到 ‘質詢’ 之後就可以使用你的私人金鑰解密再發她傳送給伺服器。
舉例:你使用git上傳程式碼到github,你的電腦建立一對金鑰(公鑰,私鑰),在建立GitHub倉庫的時候,會在設定中新增公鑰。上傳程式碼的時候,你的電腦會通過私鑰加密資料,然後上傳到GitHub伺服器,又應為你的伺服器上有你新增的公鑰,伺服器通過公鑰解密資料然後儲存到倉庫中。同理你從GitHub伺服器上拉去資料的時候,會對資料進行公鑰加密,然後傳輸到客戶端,客戶端通過私鑰解密資料,並存放到對應資料夾。(私鑰加密公鑰解密,公鑰加密私鑰解密)
5.1.2.3、ssh金鑰生成
//進入 c:\user\Administrator\.ssh目錄(有內容則說明已經有公鑰了,可以刪除從新生成,也是有直接使用)
//生成公鑰
ssh-keygen
ssh-keygen -t rsa//使用一些加密演算法
5.1.2.4、ssh金鑰配置
5.1.3、同步到遠端倉庫
將本地git倉庫的程式碼上傳到遠端倉庫
git push origin master
出現分支合併的報錯 使用
git pull --rebase origin master
6、分支管理
-
git分支常用命令
//列出所有本地分支 git branch //列出所有遠端分支 git branch -r //新建分支,單但依然停留在當前分支 git branch dev //建立新分支,並切換到該分支 git checkout -b dev //切換分支 git checkout dev //合併制定分支到當前分支 git merge dev //刪除本地分支 git branch -d dev //刪除遠端分支 git push orgin --delete dev git branch -dr dev
上傳到gitee碼雲
方法一
適用於專案開始之前
1、gitee建立倉庫
2、在專案中克隆倉庫
git clone + ‘地址’
3、程式碼提交到介面
git add .
4、程式碼提交到本地倉庫
git commit -m ‘提示資訊’
5、將原生程式碼提交的遠端倉庫
git push + 地址
方法二
適用於專案完成或者完成一半
1、cd到你的專案目錄
2、建立一個本地倉庫
git init
3、將專案的所有檔案新增到快取中
git add .
4、將快取中的檔案Commit到git庫
git commit -m “新增此次更新的內容備註”
5、將本地的庫連結到遠端倉庫
git remote add origin + HTTPS連結
6、將本地git倉庫的程式碼上傳到遠端倉庫
git push origin master
7、出現分支合併的報錯 使用
git pull --rebase origin master
檢視commit記錄
git log git reflog
回退版本 git reset --hard ***(版本號)
git push -f 強制推送
相關文章
- 使用gitee作為原始碼管理工具Gitee原始碼
- Go基礎系列:2. 環境搭建Go
- flutter 基礎系列(一)—— 環境搭建執行Flutter
- 程式碼管理工具-Git基礎介紹及常用技巧Git
- 豬行天下之Python基礎——1.2 pip包管理工具 & 虛擬環境Python
- 部署伺服器系列三:Linux環境結合Docker搭建前端環境伺服器LinuxDocker前端
- 前端基礎系列(三) -- 演算法 + 資料結構基礎前端演算法資料結構
- NOI Linux 基礎知識與程式設計環境Linux程式設計
- Maven 專案管理工具基礎入門系列(二)Maven專案管理
- flutter開發系列(搭建基礎的flutter環境)Flutter
- RocketMQ 視覺化環境搭建和基礎程式碼使用MQ視覺化
- java基礎環境Java
- Myth原始碼解析系列之三- 環境搭建原始碼
- Flutter系列(三)——環境搭建(Windows)FlutterWindows
- Flask基礎環境配置Flask
- 【Flutter】基礎環境搭建Flutter
- 『忘了再學』Shell基礎 — 15、環境變數(三)變數
- 前端開發環境工具彙總前端開發環境
- 程式碼管理工具介紹——Git與GitHubGithub
- 【Flutter 基礎】環境及配置Flutter
- 用前端姿勢玩docker【三】基於nvm的前端環境構建技巧前端Docker
- 前端基礎(三):函式前端函式
- 《大前端 基礎元件》系列 CSS基礎架構前端元件CSS架構
- 【Kafka】基於Windows環境的Kafka有關環境(scala+zookeeper+kafka+視覺化工具)搭建、以及使用.NET環境開發的案例程式碼與演示KafkaWindows視覺化
- Linux應用程式基礎與RPM軟體包管理工具以及原始碼編譯安裝Linux原始碼編譯
- 程式碼片段管理工具
- 程式碼管理工具——GitHubGithub
- 從零搭建前端開發環境----React+Ts+Webpack基礎搭建前端開發環境ReactWeb
- 初識weex系列(前端視角) - 環境搭建前端
- 資料庫應有與之匹配的基礎環境資料庫
- 搭建程式碼環境
- Pipenv:新一代Python專案環境與依賴管理工具Python
- Hadoop 基礎之搭建環境Hadoop
- C#基礎系列--C#中委託與事件(三)C#事件
- JavaScript夯實基礎系列(三):thisJavaScript
- 程式碼管理工具比較
- Storm 系列(三)—— Storm 單機版本環境搭建ORM
- [ Module ] 環境變數管理工具 Module 安裝和使用變數