正如標題所說,GIT是萌新邁向?qū)I(yè)的必備一步。初學(xué)編程時,你可以不管版本控制等問題,但想要更專業(yè)或職業(yè)化,學(xué)習(xí)GIT是必備的。所以本次手把手系列,終于來到了GIT篇,不過GIT的內(nèi)容其實比較多,倒也不需急于求成,今天就讓我們開始第一步,介紹git、手把手教你安裝并演示基礎(chǔ)使用
??作者簡介:戰(zhàn)斧,從事金融IT行業(yè),有著多年一線開發(fā)、架構(gòu)經(jīng)驗;愛好廣泛,樂于分享,致力于創(chuàng)作更多高質(zhì)量內(nèi)容
??本文收錄于 GIT 專欄,有需要者,可直接訂閱專欄實時獲取更新
??高質(zhì)量專欄 云原生、RabbitMQ、Spring全家桶 等仍在更新,歡迎指導(dǎo)
??Zookeeper Redis kafka docker netty等諸多框架,以及架構(gòu)與分布式專題即將上線,敬請期待
一、版本控制系統(tǒng)是什么?
1. 倒霉的小明
小明是一名軟件開發(fā)工程師,他負責(zé)一個重要的項目,在開發(fā)過程中,小明不斷地修改和更新代碼。他不斷地添加新功能和修復(fù)錯誤,并保存在文件夾中。
在一個星期的努力工作之后,小明終于完成了項目的第一個版本。但是,在將代碼打包上傳到測試環(huán)境時,他意識到自己犯了一個錯誤,他在代碼中刪除了一個非常重要的函數(shù)。小明現(xiàn)在無法恢復(fù)該函數(shù),因為他沒有備份任何早期的版本。這意味著他需要從頭開始編寫該函數(shù),從而浪費他幾天甚至幾周的時間
小明的項目負責(zé)人要求他恢復(fù)被刪除的函數(shù),并問他是否還有以前的版本可以使用。小明不得不告訴他,他沒有記錄每個版本的變化,也沒有備份任何早期版本的代碼。這讓項目負責(zé)人非常失望
沒過幾天,同事小張發(fā)現(xiàn)了一個重大問題,小張寫的一段核心代碼丟失了。最后發(fā)現(xiàn),是小明和小張一起在改這個功能,因為互相沒有提前通知,導(dǎo)致小明在不知情的情況下,把小張剛交上去的代碼覆蓋掉了,這讓項目負責(zé)人非常失望,并質(zhì)疑起小明的能力
最終,小明的項目被推遲了幾周,因為他必須重新編寫功能,在沒有任何歷史記錄和備份的情況下進行提交。這個項目經(jīng)歷了很多問題和延誤
2. 版本控制系統(tǒng)
正是因為預(yù)見了小明的情況,所以開發(fā)者們研究出了一種叫版本控制系統(tǒng)的東西。 版本控制系統(tǒng)是一種用于記錄、管理和追蹤軟件代碼、文檔和其他數(shù)字內(nèi)容變更的系統(tǒng)。它可以跟蹤每個版本的變化,并提供工具來處理多個開發(fā)者之間的并發(fā)更新和合并不同版本的代碼。版本控制系統(tǒng)可以解決軟件開發(fā)過程中的許多問題,包括:
-
保留歷史記錄和版本控制 - 可以輕松追蹤軟件代碼的變化,并了解每個版本的變更和貢獻者信息。
-
合并沖突和分支管理 - 當多個開發(fā)者同時修改同一文件時,版本控制系統(tǒng)可以幫助合并代碼沖突并跟蹤分支變化,從而避免出現(xiàn)代碼丟失或重復(fù)編寫問題。
-
團隊協(xié)作 - 版本控制系統(tǒng)可以使團隊成員協(xié)同開發(fā),可以在多個開發(fā)者之間共享代碼、文檔和其他文件,并對其進行協(xié)調(diào)和管理
3. 常見的版本控制系統(tǒng)
SVN:SVN曾經(jīng)是最流行的版本控制系統(tǒng)之一。它是一個集中式版本控制系統(tǒng),用于管理和維護文件和目錄的歷史記錄
CVS:是另一種集中式版本控制系統(tǒng),它被廣泛用于開源軟件開發(fā)
Git:目前非常流行的分布式版本控制系統(tǒng),由Linus Torvalds為Linux內(nèi)核開發(fā)而創(chuàng)建
不難看出,只有Git
才是分布式版本控制系統(tǒng),集中式版本控制系統(tǒng)
與分布式版本控制系統(tǒng)
主要區(qū)別在于代碼庫的位置和同步方式。集中式版本控制系統(tǒng)
的代碼庫存儲在中央服務(wù)器上,開發(fā)人員需要通過網(wǎng)絡(luò)連接到服務(wù)器進行操作,因此對于服務(wù)器的可靠性和帶寬要求較高。而分布式版本控制系統(tǒng)
的代碼庫分布在每個開發(fā)人員的本地,開發(fā)人員可以在沒有網(wǎng)絡(luò)連接的情況下進行代碼的操作,同時由于代碼庫可以在不同的本地進行復(fù)制和同步,因此也更加靈活和分散化。
上圖中,我們的模型中,出現(xiàn)了Git中的三個概念(本次先不提暫存區(qū))
-
遠程倉庫 (Remote Repository)
遠程倉庫通常位于網(wǎng)絡(luò)上的服務(wù)器,可以用作代碼共享和備份,同時也是多人協(xié)同開發(fā)的必要組成部分??梢栽诒镜貜倪h程倉庫中克隆代碼庫,并將本地代碼庫提交到遠程倉庫,以實現(xiàn)代碼的共享和備份。 -
本地倉庫 (Local Repository)
本地倉庫是指在本地計算機上創(chuàng)建的用于存儲代碼修改記錄的倉庫??梢栽诒镜貙Υa進行修改、提交、回退等操作,并與遠程倉庫同步,以實現(xiàn)多人協(xié)同開發(fā)和代碼備份。 -
工作區(qū) (Working Directory)
工作區(qū)是指在本地計算機上實際工作的目錄,其中包含了當前正在開發(fā)的代碼以及相關(guān)文件和目錄??梢酝ㄟ^ Git 將工作區(qū)代碼提交到本地倉庫,或?qū)⒈镜貍}庫中的代碼同步到工作區(qū)。
總的來說:
工作區(qū)是實際工作的目錄,是你在本地電腦上看到的文件夾,它本身沒有進行任何版本控制。
Git的核心其實是本地倉庫,它是以一個.git目錄的形式存儲在項目的根目錄下的隱藏文件夾中。里面包含了 Git 用來管理代碼版本的所有數(shù)據(jù)和元數(shù)據(jù)。在本地倉庫中,Git 記錄了所有對代碼的修改,包括每個版本的提交時間、提交人、修改內(nèi)容等。有了本地倉庫,你可以回退到之前的任何一個版本,或者查看每個版本之間的差異,非常方便地進行代碼版本管理。
遠程倉庫一般是網(wǎng)絡(luò)服務(wù)器,是多人協(xié)同開發(fā)和代碼備份的中心.
如果我們只有一個人,在自己的電腦上開發(fā)的話,就不需要遠程倉庫
,只需要在本地創(chuàng)建一個 Git 本地倉庫
,進行代碼的提交、修改、撤銷等操作即可。
二、GitLab 與 GitHub
說到 Git,筆者覺得還應(yīng)當介紹另外兩個東西,即 GitLab
與 GitHub
,這兩者都是版本控制管理平臺,并使用Git作為其核心。我們可以這么說,這兩者都是Git的前端界面,它們提供了Git的分布式版本控制系統(tǒng)的前端交互和可視化管理界面,下面我們來詳細介紹
1. GitLab
Gitlab是被廣泛使用的基于git的開源代碼管理平臺, 主要針對軟件開發(fā)過程中產(chǎn)生的代碼和文檔進行管理,一般用于企業(yè)存放代碼,并配套以持續(xù)集成等功能,筆者公司使用的亦是該平臺
GitLab的主要功能包括:
-
Git倉庫管理:GitLab支持多種Git客戶端,包括Git、HTTPS和SSH。同時支持使用Git命令行工具或者Web界面進行代碼的提交、拉取、合并和分支管理等操作。
-
代碼審查:通過GitLab的代碼審查功能,開發(fā)人員可以進行代碼的檢查、評論和討論,以便發(fā)現(xiàn)潛在的問題和錯誤。
-
持續(xù)集成:GitLab與CI/CD(持續(xù)集成/持續(xù)交付)工具進行了集成,用戶可以通過GitLab進行代碼檢查、編譯、測試和部署等自動化流程。
-
問題跟蹤:通過GitLab的問題管理功能,開發(fā)團隊可以跟蹤問題的狀態(tài)和進度,從而更好的管理和解決問題。
-
敏捷開發(fā):GitLab支持敏捷開發(fā)過程,包括迭代、用戶故事、沖刺和團隊管理等功能。
總之,GitLab是一個強大的代碼托管和管理工具,可以幫助開發(fā)團隊提高開發(fā)效率、加強協(xié)作和提高代碼質(zhì)量
2. GitHub
前面說了 GitLab 適合大團隊和企業(yè)使用,而對于大多數(shù)開發(fā)者,GitHub
才更耳熟能詳。GitHub 是基于Git的代碼托管平臺,且注重于開源社區(qū),我們知道的大部分開源軟件,都維護在GitHub
上 點此跳轉(zhuǎn)
不管你現(xiàn)在是否能用得上,作為一名開發(fā)者,筆者還是建議各位同學(xué)都去注冊一下,哪怕不在上面建項目,去閱讀一些開源框架源碼也是很有利的,比如看看JDK 、ZK 之類的。
當然,由于一些原因,訪問 GitHub
并不總是成功,同學(xué)們經(jīng)常會遇到登不上,打不開頁面之類的問題。由于本站限制討論這類問題,所以需要各位發(fā)揮自己去搜索并解決了。
如果不想費那個事,也可以使用國內(nèi)平替,現(xiàn)在使用的人也非常多,而且支持直接從Github
導(dǎo)入倉庫,這就是 “”碼云 “ —— Gitee
。 可點擊進入官網(wǎng),由于Gitee在中國,因此它提供了更多的面向中國用戶的優(yōu)化,如中文界面、更快的訪問速度等。
三、Git安裝
1. 下載
我們要弄Git,第一步肯定還是需要下載并安裝Git。在此過程中,需要根據(jù)你的操作系統(tǒng)選擇相應(yīng)的版本。在Windows上,可以前往Git官網(wǎng) 點此直達下載.exe程序,而在Mac和Linux上,則需要使用命令行安裝Git
點擊后根據(jù)自己的系統(tǒng)情況進行下載即可,筆者是win10-64位,所以下載對應(yīng)的內(nèi)容
當然,有時候國內(nèi)下載并不是很好用,所以我也上傳了資源,如果沒被管理員下架的話,你可以點此下載 Git-2.42.0-64-bit-windows安裝版
2. 安裝
對于Windows用戶,您只需雙擊下載的.exe文件,并按照安裝向?qū)У闹甘具M行操作即可完成安裝。
除了安裝路徑可以按需調(diào)整下,中間一路NEXT就可以,即采用默認設(shè)置就可以
3. 驗證
在成功安裝Git之后,你可以在命令行中輸入以下命令來驗證它是否正常工作,windows下,可以在命令控制臺輸入
git --version
來查看版本,如果顯示版本正常,即代表安裝成功。
四、初學(xué)使用
既然我們已經(jīng)下載完Git了,我們現(xiàn)在就來初步學(xué)習(xí)下如何使用。首先,我們得有一個本地項目,然后為這個工程建立一個本地倉庫,并把我們的代碼提交到本地倉庫。如果我們只是在本地編輯代碼,那其實弄完本地倉庫就可以了。
1. 本地倉庫
我們先找到自己要處理的項目,或新建一個項目,如下:
找到項目的源碼根目錄
右鍵空白處,打開git命令界面
1.因為我們是第一次使用git,所以先設(shè)置我們的用戶名稱與郵件地址。
git config --global user.name "你的姓名"
git config --global user.email "你的郵箱"
2.設(shè)置完這些以后,開始對項目進行處理。我們先將本地目錄初始化為 Git 倉庫。 我們可以把初始分支稱為 main
git init -b main
成功后,該目錄下應(yīng)該有一個名為 .git 的隱藏目錄。(瀏覽隱藏目錄需自行設(shè)置文件瀏覽器,不再贅述)
3.將本目錄下所有文件通過add,暫存進本地倉庫
git add .
圖中的警告,為windows換行符與Linux換行符不同的問題,可通過 git config --global core.autocrlf true
進行處理,不再贅述。
4.最后一步,將暫存的文件進行提交,-m 為提交附帶的信息,我們這里就叫“First commit”
git commit -m "First commit"
2. 遠程倉庫-Github
如我們所說,如果同學(xué)們的項目不滿足于本地機器操作,想把自己的代碼上傳至平臺,那就還需要進行遠程倉庫的處理。我們將分別演示如何將本地內(nèi)容上傳至 Github
/ Gitee
;我們先從 Github 講起,Github 其實是有客戶端的。不過,面向新手同學(xué),我們這里還是依靠命令行來處理.
1.前面Github 注冊賬號、登錄等內(nèi)容,在此就不展開了,我們從在GitHub.com 上創(chuàng)建一個新存儲庫說起,如下:
2.復(fù)制我們新建的這個遠程倉庫的地址,注意有 HTTPS 和 SSH 兩種類型,我們這里選HTTPS的。
3.在我們本地項目根目錄,右鍵打開git命令行,并輸入
git remote add origin 遠程倉庫地址
4.最后一步,把我們本地倉庫的代碼推送到Github上
$ git push origin main
此時可能會彈出驗證,我們登陸一下即可。
5.在Github 上檢視我們的項目
3. 遠程倉庫-Gitee
1.前面的內(nèi)容與上述的github是一樣的,包括Gitee的注冊登錄、Gitee上新建倉庫等
2. 后續(xù)步驟也是一樣,復(fù)制這個Gitee遠程倉庫的url
3.上傳至遠程服務(wù)器,這里為了與git里我們設(shè)置的別名不沖突,將gitee的遠程倉庫命名為gitee-origin
git remote add origin 遠程倉庫地址
然后推送
git push -u gitee-origin main
4.檢視我們的gitee項目情況,項目已成功推送到了Gitee
4. Idea對接Git
在日常工作中,我們都是通過Idea 進行代碼編輯,而其也支持git的操作,我們只需進行如下設(shè)置
配置上自己安裝好的的git的位置即可
5. idea提交至Gitee
假如我們新改動了一點源碼,或新增了文件,該如何將其推送到Gitee平臺呢?
(我們前面為項目設(shè)置了兩個遠程倉庫Github 及 Gitee,但推送至Gitee時因為使用了 git push -u gitee-origin main 命令,其中的 -u 代表了默認遠端,所以后續(xù)如果我們push時沒有指定遠端,默認就會推送至Gitee)
修改代碼Git會自己識別,而新增文件一般只要在這個目錄下,Idea會自動彈出彈框,詢問我們是否需要把該文件納入Git的管理,我們選擇是即可。即便點錯了,后續(xù)右鍵單擊該文件,同樣可以將其add進Git
我們的改動發(fā)生在工作區(qū),如果你還記得我們前面的模型,那應(yīng)該知道,我們接下來要先將改動提交到本地倉庫,然后再將本地倉庫推送到遠程倉庫,具體操作如下,先點擊commit
按鈕
在接下來的彈框中,確認我們修改的文件是在Staged下(若不在,可手動選中文件右鍵,將其置為Staged),然后填上本次提交的信息,進行commit
然后在彈框內(nèi)二次確認,最終push即可
最后,我們就可以在gitee上看到自己的修改成果了
文章來源:http://www.zghlxwxcb.cn/news/detail-677906.html
總結(jié)
本次我們從Git模型,到安裝,到對接idea,到手把手演示了如何把代碼推送至Github 和 Gitee。力求做到即使是零基礎(chǔ)的開發(fā)者,也能看得懂、學(xué)得會。后續(xù)我們還會編寫Git專欄的其他文章,屆時將著重于原理,更細致的模型,以及其各式各樣的命令,希望能幫助到各位小伙伴
文章來源地址http://www.zghlxwxcb.cn/news/detail-677906.html
到了這里,關(guān)于手把手教你安裝Git,萌新邁向?qū)I(yè)的必備一步的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!