git是什么?
Git是一個分布式版本控制系統,用于管理源代碼的變更。它允許多個開發者在同一個項目上協作,同時跟蹤每個修改的歷史記錄。
關鍵詞:
- 分布式
- 版本控制
- 軟件
軟件
安裝到我們電腦上的一個工具
版本控制
例如論文,論文不斷修改,有論文1.0,論文2.0,論文3.0,論文最終版本,對我們的論文版本進行管理,版本控制的發展歷程如下:
1. 早期階段(1960s-1970s)
- 源代碼管理的萌芽:在1960年代,隨著計算機程序的復雜性增加,開發人員開始尋找管理和跟蹤代碼變更的工具。最早的版本控制系統是在大型機環境中手動管理的,通常通過備份、文件命名約定和文檔來完成。
2. 控制系統的出現(1970s-1980s)
- RCS與SCCS:1970年代,BSD(伯克利軟件分發版)引入了SCCS(Source Code Control System),這是第一個自動管理源代碼版本的軟件系統。RCS(Revision Control System)隨后出現,為版本控制提供了一種更為簡潔有效的方法。
3. 傳統集中式版本控制(1980s-2000s)
- CVS和Subversion:在1990年代,CVS(Concurrent Versions System)成為最普遍使用的版本控制系統。它允許多個開發者并行協作,并具有沖突解決機制。隨后,Subversion(SVN)在2000年推出,解決了CVS的一些缺陷,如缺乏對二進制文件和目錄版本控制的支持。
4. 分布式版本控制的興起(2000s-現在)
- Git的出現:2005年,Linus Torvalds開發了Git,標志著分布式版本控制的新時代。Git允許每位開發者都擁有完整的代碼庫副本,從而極大地提高了協作效率和靈活性。
- Mercurial:與Git同年推出的Mercurial也是一款流行的分布式版本控制工具,但其設計上更加注重簡潔和易用。
5. 社區和平臺的繁榮(2010s-現在)
- GitHub和GitLab的發展:隨著Git的流行,GitHub(2008年)和GitLab等平臺興起,使開源項目和團隊協作更加便捷。它們提供了圖形化界面和集成的代碼審查、問題跟蹤和持續集成等功能。
為什么要做版本控制?
-
歷史記錄和追蹤更改:版本控制系統(如 Git)能夠記錄每一次更改,可以輕松查看和恢復到以前的版本。這對于 bug 修復和回退到穩定版本非常有幫助。
-
協作:在團隊環境中,版本控制允許多個開發者并行工作而不會互相干擾。它可以合并不同的代碼更改,確保每個人的工作都能被記錄和整合。
-
分支和合并:可以創建分支來開發新功能或修復問題,然后在完成后將其合并到主代碼庫。這使得實驗和開發新特性變得更安全。
-
提高代碼質量:通過版本控制,團隊可以在合并代碼之前進行代碼審核,確保代碼的質量和一致性。
-
文檔化過程:版本控制系統會記錄誰何時做了什么更改,提供了良好的文檔化,使得項目管理和審計變得容易。
-
解決沖突:當多個開發者同時修改同一部分代碼時,版本控制可以幫助識別和解決沖突,確保最終代碼的完整性。
-
環境管理:版本控制可以幫助管理不同的開發和生產環境,確保源代碼和配置的一致性。
git安裝
這里我就不演示了,下面的鏈接有詳細講解了如何安裝以及環境的配置
git安裝及環境配置
版本控制的操作順序
- 進入要管理的文件夾
選擇我們要進入的git_learn文件
然后管理aa.py文件 - 初始化(提名,讓別人知道你就是老大)
git init#進行git的初始化
git status#檢測當前文件夾下的狀態
- 管理
git add aa.py#執行這一段代碼就是讓git管誰
能夠發現,git add 文件后,該文件變成了綠色git add .#會將該目錄下的所有未被管理的文件,都進行管理
- 生成版本
git commit -m '生成第一個版本v1'
此時git已經將當前版本的文件生成一個版本了。
如果我在上一個版本上修改了我的aa.py文件
這個時候aa.py文件在上一個版本中,進行了修改,接下來還是將修改的文件加入管理,并且生成版本
git add .
git commit -m 'v2'
如何查看生成的記錄呢
git log
個人信息配置:用戶名、郵箱[配置一次即可]
git config --global user.email "郵箱"
git config --global user.name "Your Name"
git工作流程
我的評價!!!直接看? 東北熱
如何回滾
git reset --hard 輸入要回滾的序列號
如果想回到以前做過的一些版本可以使用
git reflog #查詢回滾以前的功能
這里就可以看到回滾以前的版本,再用git reset --hard 輸入要回到的版本
代碼總結
git init #初始化,即讓git幫我們管理當前文件夾
git status #檢測當前目錄下文件的狀態
#三種狀態(顏色)的變化
1.紅色:新增的文件/修改了原來老文件 -》git add 文件名 .
2.綠色:git已經管理起來了 -》git commit -m '描述信息'
3.生成版本
git log 查看版本記錄
git reflog
git reset --hard 版本號
三大區域
分支
初始分支
開發不同的功能,然后將不同的功能合并到一起。
基于分支修復線上bug的具體過程
主路線就是master
分支實例
先開發a1功能
git init初始化
git status # 查看狀態
git add .#將未更新的版本加入更新
接下來開發a2功能
git log #查看版本記錄
接下來上線商城功能
接下來創建短視頻的功能
創建分支
理想分支如下,可以記下來
創建dev分路
git branch #查看分路
git branch "名字" #創建名為的分路
git checkout ""#要切換的分路名
在dev分支上開發短視頻功能,完成50%時出現了bug
然后出現bug,返回master分支,創建bug分支
此時的代碼回到了a3,然后進入bug分支
接下來,修理商城代碼的bug
接下來將bug的代碼和master的代碼進行合并
git merge "分支"#合并你的分支
git branch -d "選擇你要刪除的分支"
先返回master分支
合并完成后刪除bug分支
接下來前往短視頻系統繼續開發
最后將短視頻功能合并到master
出現上述代碼就是要調整代碼,處理業務沖突
先對修改好的代碼進行上線,再刪除dev分支
工作流
做開發至少要有兩個分支
一個是master分支
一個是dev分支,所有的開發都在dev分支上進行
github
基于github做代碼托管
創建新的倉庫
如何上傳代碼,以及如何克隆代碼
git remote add origin 遠程倉庫地址 #給遠程倉庫起別名
git push -u origin 分支 #向遠程推送代碼
git clone 遠程倉庫地址 #克隆遠程倉庫代碼(內部已經實現了起別名)
git checkout 分支 #切換分支