柚子快報(bào)激活碼778899分享:Git 超詳細(xì)使用教程
柚子快報(bào)激活碼778899分享:Git 超詳細(xì)使用教程
目錄
1、介紹1.1、Git 簡(jiǎn)介和優(yōu)勢(shì)1.2、版本控制基本概念
2、安裝 Git3、配置 Git3.1、配置用戶信息(必要)3.2、配置文本編輯器(非必要)3.3、配置別名(非必要,新手不建議)3.4、查看配置3.5、配置忽略文件
4、創(chuàng)建倉(cāng)庫(kù)4.1、在本地創(chuàng)建倉(cāng)庫(kù)4.2、在遠(yuǎn)程托管平臺(tái)創(chuàng)建倉(cāng)庫(kù)4.3、關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
5、基本操作5.1、初始化倉(cāng)庫(kù)5.2、查看工作目錄和暫存區(qū)的當(dāng)前狀態(tài)5.3、添加文件到暫存區(qū)5.4、提交更改5.5、查看提交歷史5.6、比較工作目錄和暫存區(qū)之間的差異5.7、版本回退5.8、恢復(fù)工作目錄中的更改5.8、撤銷提交
6、分支管理6.1、創(chuàng)建分支6.2、切換分支6.3、合并分支6.4、解決沖突6.5、刪除分支
7、遠(yuǎn)程倉(cāng)庫(kù)7.1、關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)7.2、推送代碼到遠(yuǎn)程倉(cāng)庫(kù)7.3、拉取代碼7.4、解決遠(yuǎn)程倉(cāng)庫(kù)沖突7.5、查看遠(yuǎn)程倉(cāng)庫(kù)
8、高級(jí)操作8.1、重寫歷史8.2、使用儲(chǔ)藏和恢復(fù)8.3、管理子模塊
9、團(tuán)隊(duì)協(xié)作9.1、Git 團(tuán)隊(duì)協(xié)作流程9.2、解決團(tuán)隊(duì)協(xié)作沖突9.3、代碼審查9.4、分支保護(hù)和權(quán)限管理
10、附錄常用 Git 命令速查表基本操作分支操作遠(yuǎn)程倉(cāng)庫(kù)操作高級(jí)操作團(tuán)隊(duì)協(xié)作常見(jiàn)問(wèn)題解決
1、介紹
1.1、Git 簡(jiǎn)介和優(yōu)勢(shì)
Git是一種分布式版本控制系統(tǒng),用于跟蹤文件和目錄的變化,以及協(xié)調(diào)多個(gè)人員之間的代碼協(xié)作。相比于傳統(tǒng)的集中式版本控制系統(tǒng),如SVN,Git具有許多優(yōu)勢(shì):
分布式: 每個(gè)開發(fā)者都有一份完整的代碼倉(cāng)庫(kù),可以在離線狀態(tài)下工作,減少對(duì)中央服務(wù)器的依賴。高效性: Git對(duì)于歷史版本的管理非常高效,基于快照而不是差異。分支管理: Git鼓勵(lì)使用分支進(jìn)行并行開發(fā),方便實(shí)現(xiàn)不同功能和修復(fù)同時(shí)進(jìn)行。易于協(xié)作: 多人協(xié)作時(shí),可以輕松地合并和解決沖突。安全性: Git使用哈希值保證數(shù)據(jù)的完整性,避免了數(shù)據(jù)損壞。開源: Git本身是開源的,擁有龐大的社區(qū)支持。
1.2、版本控制基本概念
在使用Git之前,了解一些基本的版本控制概念是很重要的:
倉(cāng)庫(kù)(Repository): 一個(gè)Git倉(cāng)庫(kù)是一個(gè)存儲(chǔ)你項(xiàng)目所有文件和歷史版本的地方。提交(Commit): 提交是保存代碼更改的操作,每次提交會(huì)生成一個(gè)唯一的哈希值用于標(biāo)識(shí)。分支(Branch): 分支是用來(lái)進(jìn)行并行開發(fā)的,你可以在分支上進(jìn)行實(shí)驗(yàn)性的更改而不影響主線。主分支(Main Branch): 通常是main或master分支,代表項(xiàng)目的穩(wěn)定版本。合并(Merge): 將一個(gè)分支的更改合并到另一個(gè)分支。沖突(Conflict): 當(dāng)多個(gè)分支的更改發(fā)生沖突時(shí),需要手動(dòng)解決。
2、安裝 Git
在Windows上安裝git 訪問(wèn)Git官網(wǎng)(https://git-scm.com/)。 下載適用于Windows的Git安裝程序。 運(yùn)行安裝程序,按照提示完成安裝。
3、配置 Git
在你安裝了Git后,為了確保你的個(gè)人或項(xiàng)目特定的配置設(shè)置正確,你可以通過(guò)一些Git命令來(lái)進(jìn)行配置。這些配置項(xiàng)將影響你在使用Git時(shí)的行為和體驗(yàn)。
3.1、配置用戶信息(必要)
配置用戶信息是非常重要的,因?yàn)槊看文闾峤淮a時(shí)都會(huì)有相應(yīng)的提交者信息。
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
3.2、配置文本編輯器(非必要)
你可以配置一個(gè)默認(rèn)的文本編輯器,以便你在進(jìn)行提交信息或解決沖突時(shí)編輯文本。例如,如果你想使用Visual Studio Code:
git config --global core.editor "code --wait"
3.3、配置別名(非必要,新手不建議)
Git支持設(shè)置別名,使得你可以更快速地輸入命令。比如,你可以設(shè)置一個(gè)別名"co"來(lái)代替"checkout"命令:
git config --global alias.co checkout
3.4、查看配置
你可以使用以下命令來(lái)查看當(dāng)前的Git配置:
git config --list
這會(huì)列出所有的全局和本地配置設(shè)置。
3.5、配置忽略文件
有些文件你可能希望Git自動(dòng)忽略,例如編譯產(chǎn)生的臨時(shí)文件或敏感數(shù)據(jù)文件。你可以創(chuàng)建一個(gè)名為.gitignore的文件,并將需要忽略的文件和模式添加到其中。
# 示例 .gitignore 文件
*.log
node_modules/
secret.txt
通過(guò)這些配置,你可以將Git按照你的喜好進(jìn)行個(gè)性化設(shè)置,從而更好地適應(yīng)你的工作流程。
4、創(chuàng)建倉(cāng)庫(kù)
Git倉(cāng)庫(kù)是用于存儲(chǔ)你的項(xiàng)目代碼和歷史版本的地方。你可以在本地計(jì)算機(jī)上創(chuàng)建倉(cāng)庫(kù),也可以在遠(yuǎn)程托管平臺(tái)(如GitHub、GitLab、Gitee、Bitbucket等)上創(chuàng)建倉(cāng)庫(kù)。下面將分別介紹如何在本地和遠(yuǎn)程創(chuàng)建倉(cāng)庫(kù)。
4.1、在本地創(chuàng)建倉(cāng)庫(kù)
在本地創(chuàng)建一個(gè)新的Git倉(cāng)庫(kù)非常簡(jiǎn)單。首先,進(jìn)入你的項(xiàng)目目錄,然后使用以下命令:
git init
這會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)新的Git倉(cāng)庫(kù)。Git會(huì)在項(xiàng)目根目錄下生成一個(gè).git文件夾,用于存儲(chǔ)版本歷史和配置信息。
4.2、在遠(yuǎn)程托管平臺(tái)創(chuàng)建倉(cāng)庫(kù)
遠(yuǎn)程托管平臺(tái)如GitHub、GitLab等提供了創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)的功能。這允許你將你的代碼與團(tuán)隊(duì)成員或其他開發(fā)者共享。以下是在GitLab上創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)的步驟:
(1)登錄到你的GitLab賬號(hào)。
(2)在GitLab的主頁(yè)上,你會(huì)看到一個(gè)導(dǎo)航欄,導(dǎo)航欄上通常有一個(gè)加號(hào)(+)圖標(biāo),點(diǎn)擊它展開菜單。
(3)在菜單中,選擇"New project"或類似的選項(xiàng)。
(4)在創(chuàng)建項(xiàng)目頁(yè)面,填寫以下信息:
Project name: 項(xiàng)目名稱,這將是你的倉(cāng)庫(kù)的名稱。Project slug: 項(xiàng)目標(biāo)識(shí)符,通常是項(xiàng)目名稱的小寫,可以包含連字符。Project description: 項(xiàng)目描述,簡(jiǎn)要介紹項(xiàng)目的用途。Visibility Level: 項(xiàng)目的可見(jiàn)性設(shè)置,可以選擇"Public"(公開)或"Private"(私有)。Initialize repository with a README: 是否在倉(cāng)庫(kù)中初始化一個(gè)README文件,你可以選擇根據(jù)需要啟用或禁用。 填寫完畢后,點(diǎn)擊"Create project"按鈕。
(5)GitLab將為你創(chuàng)建一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù),并將你重定向到倉(cāng)庫(kù)頁(yè)面。
(6)在倉(cāng)庫(kù)頁(yè)面中,你將找到倉(cāng)庫(kù)的URL,這是你與遠(yuǎn)程倉(cāng)庫(kù)交互的鏈接。
4.3、關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
在本地創(chuàng)建倉(cāng)庫(kù)或克隆已有倉(cāng)庫(kù)后,你可能想要將它與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)起來(lái),以便推送和拉取代碼。
git remote add origin
這里,origin是一個(gè)遠(yuǎn)程倉(cāng)庫(kù)的別名,你可以自己命名,是遠(yuǎn)程倉(cāng)庫(kù)的URL。
5、基本操作
5.1、初始化倉(cāng)庫(kù)
在一個(gè)目錄中初始化一個(gè)Git倉(cāng)庫(kù),使其成為Git可管理的倉(cāng)庫(kù)。
git init
5.2、查看工作目錄和暫存區(qū)的當(dāng)前狀態(tài)
查看工作目錄和暫存區(qū)的當(dāng)前狀態(tài)。獲得有關(guān)你的代碼庫(kù)中文件的信息,包括已修改、已暫存和未跟蹤的文件。
git status
例如,在本地倉(cāng)庫(kù)中新建一個(gè)文件1.txt,然后查看當(dāng)前狀態(tài)
5.3、添加文件到暫存區(qū)
在進(jìn)行代碼提交之前,需要將文件添加到Git的暫存區(qū),以準(zhǔn)備好提交。
//添加指定文件到暫存區(qū)
git add
//添加所有文件到暫存區(qū)
git add .
你也可以使用通配符來(lái)添加多個(gè)文件。
此時(shí)執(zhí)行g(shù)it status再次查看狀態(tài)
5.4、提交更改
提交暫存區(qū)中的更改到版本庫(kù)中
git commit -m "Commit message"
合理的提交信息能夠清晰地說(shuō)明你的更改內(nèi)容。
此時(shí)執(zhí)行g(shù)it status再次查看狀態(tài)
5.5、查看提交歷史
查看項(xiàng)目的提交歷史,了解每次提交的詳細(xì)信息。
//查看提交歷史
git log
//以精簡(jiǎn)形式顯示提交歷史
git log --oneline
5.6、比較工作目錄和暫存區(qū)之間的差異
比較工作目錄和暫存區(qū)之間的差異,或者比較兩個(gè)提交之間的差異。
//比較工作目錄和暫存區(qū)之間的差異
git diff
//比較暫存區(qū)和最新提交之間的差異
git diff --staged
//或
git diff --cached
//比較兩個(gè)提交之間的差異
git diff
//比較指定文件的差異
git diff
5.7、版本回退
新增兩次提交
此時(shí)1.txt中的內(nèi)容為:
此時(shí)想要進(jìn)行版本回退有三種方式
//回退到上個(gè)版本
git reset --hard HEAD^
//回退到上上個(gè)版本
git reset --hard HEAD^^
//回退到前10個(gè)版本
git reset --hard HEAD~10
//回退到指定版本號(hào)的版本
git reset --hard a7f365c128827cdf1f0d796141ce3c644cc78770
執(zhí)行命令回退到上個(gè)版本,此時(shí)已看不到第三次提交并且1.txt中內(nèi)容也回退到了對(duì)應(yīng)版本
如果此時(shí)我們還想要重新回到版本回退前的版本,則可以使用git reset --hard [版本號(hào)] 來(lái)實(shí)現(xiàn)
//查詢版本號(hào)
git reflog
//回退版本
git reset --hard [版本號(hào)]
此時(shí)需要先獲取到版本回退前的版本號(hào),然后再執(zhí)行版本回退
5.8、恢復(fù)工作目錄中的更改
如果在修改添加到暫存區(qū)之前,想要撤銷某個(gè)文件的修改可以使用以下命令
//將指定文件恢復(fù)到版本庫(kù)中的版本
git restore
//將所有文件恢復(fù)到版本庫(kù)中的版本
git restore .
//注意,舊版本不支持restore命令,需要使用該命令
git checkout --
如果修改已經(jīng)添加到暫存區(qū),想要撤銷某個(gè)文件的修改可以使用以下命令
//放棄指定文件修改
git reset HEAD
//放棄所有文件修改
git reset HEAD .
5.8、撤銷提交
當(dāng)你需要撤銷之前的提交時(shí),你可以使用git revert命令來(lái)創(chuàng)建一個(gè)新的提交,將之前的提交內(nèi)容進(jìn)行反轉(zhuǎn)。這允許你保留之前的提交歷史,同時(shí)也糾正了之前的更改。
//撤銷一個(gè)提交
git revert [版本號(hào)]
//可以指定一個(gè)范圍,撤銷多個(gè)連續(xù)的提交
git revert
6、分支管理
Git的分支管理功能允許你在不影響主線代碼的情況下進(jìn)行并行開發(fā)、實(shí)驗(yàn)性改動(dòng)和問(wèn)題修復(fù)。了解如何創(chuàng)建、切換和合并分支,以及如何解決分支沖突非常重要。
6.1、創(chuàng)建分支
創(chuàng)建一個(gè)新分支,用于開發(fā)新功能或修復(fù)問(wèn)題,保持主線代碼不受影響。
//創(chuàng)建一個(gè)分支
git branch
//創(chuàng)建并切換到分支
git branch -b
6.2、切換分支
切換到另一個(gè)分支,以便在不同的分支上進(jìn)行不同的工作。
//切換分支
git checkout
//查看當(dāng)前所在分支
git checkout
6.3、合并分支
將一個(gè)分支的更改合并到另一個(gè)分支中。
git merge
在合并時(shí)可能會(huì)遇到?jīng)_突,需要手動(dòng)解決。
6.4、解決沖突
當(dāng)兩個(gè)分支有不同的更改并且產(chǎn)生沖突時(shí),需要手動(dòng)解決沖突。
打開沖突文件,編輯并解決沖突。使用git add 標(biāo)記沖突已解決。提交解決沖突的更改。
6.5、刪除分支
當(dāng)一個(gè)分支的工作已經(jīng)完成,可以刪除不再需要的分支。
git branch -d
請(qǐng)注意,如果分支中的更改尚未合并,刪除分支時(shí)可能會(huì)出現(xiàn)警告。
7、遠(yuǎn)程倉(cāng)庫(kù)
將你的本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián),可以實(shí)現(xiàn)代碼的共享和團(tuán)隊(duì)協(xié)作。在本節(jié)中,你將學(xué)習(xí)如何關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)、推送代碼到遠(yuǎn)程倉(cāng)庫(kù)以及從遠(yuǎn)程倉(cāng)庫(kù)拉取代碼更新。
7.1、關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
將本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)起來(lái),以便你可以推送和拉取代碼。 注意:本地Git倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的,所以還需要將你的SSH密鑰添加到遠(yuǎn)程倉(cāng)庫(kù)設(shè)置中。
git remote add origin
在這里,
7.2、推送代碼到遠(yuǎn)程倉(cāng)庫(kù)
一旦關(guān)聯(lián)了遠(yuǎn)程倉(cāng)庫(kù),你可以將本地代碼推送到遠(yuǎn)程倉(cāng)庫(kù)。
git push origin
這會(huì)將指定分支的代碼推送到遠(yuǎn)程倉(cāng)庫(kù)。首次推送時(shí),你可能需要使用 -u 參數(shù)來(lái)建立跟蹤關(guān)系。
7.3、拉取代碼
從遠(yuǎn)程倉(cāng)庫(kù)拉取代碼更新,以保持你的本地代碼同步。
git pull origin
這會(huì)將指定分支的最新代碼拉取到你的本地倉(cāng)庫(kù)。
7.4、解決遠(yuǎn)程倉(cāng)庫(kù)沖突
在多人協(xié)作時(shí),可能會(huì)遇到遠(yuǎn)程倉(cāng)庫(kù)的沖突。在推送代碼之前,確保從遠(yuǎn)程倉(cāng)庫(kù)拉取最新的代碼,以避免沖突。
7.5、查看遠(yuǎn)程倉(cāng)庫(kù)
你可以使用以下命令查看與本地倉(cāng)庫(kù)關(guān)聯(lián)的遠(yuǎn)程倉(cāng)庫(kù)。
git remote -v
通過(guò)以上遠(yuǎn)程倉(cāng)庫(kù)操作,你可以實(shí)現(xiàn)代碼的共享和協(xié)作,確保團(tuán)隊(duì)成員之間的代碼同步。請(qǐng)根據(jù)你的實(shí)際項(xiàng)目需求和使用情況對(duì)上述內(nèi)容進(jìn)行編輯和擴(kuò)展。
8、高級(jí)操作
除了基本操作外,Git還提供了一些高級(jí)操作,可以幫助你更靈活地管理代碼和歷史記錄。在本節(jié)中,你將學(xué)習(xí)如何重寫歷史、使用儲(chǔ)藏功能以及管理子模塊。
8.1、重寫歷史
在某些情況下,你可能需要修改之前的提交歷史,如合并、重新排序或刪除提交。
修改最近一次提交信息:git commit --amend交互式地修改提交歷史:git rebase -i
8.2、使用儲(chǔ)藏和恢復(fù)
儲(chǔ)藏功能允許你將當(dāng)前未提交的更改暫存起來(lái),以便在切換分支或執(zhí)行其他操作時(shí)恢復(fù)使用。
儲(chǔ)藏當(dāng)前更改:git stash恢復(fù)儲(chǔ)藏的更改:git stash apply 或 git stash pop
8.3、管理子模塊
子模塊允許你在一個(gè)Git倉(cāng)庫(kù)中嵌套另一個(gè)倉(cāng)庫(kù),這對(duì)于依賴的管理非常有用。
添加子模塊:git submodule add
更新子模塊:git submodule update --init --recursive刪除子模塊:詳見(jiàn)Git文檔
通過(guò)高級(jí)操作,你可以更靈活地處理提交歷史、更改管理以及子模塊等復(fù)雜情況。請(qǐng)根據(jù)你的實(shí)際項(xiàng)目需求和使用情況對(duì)上述內(nèi)容進(jìn)行編輯和擴(kuò)展。
9、團(tuán)隊(duì)協(xié)作
在團(tuán)隊(duì)中協(xié)作使用Git時(shí),需要注意協(xié)調(diào)各種活動(dòng)以確保代碼的正確性、穩(wěn)定性和一致性。本小節(jié)將介紹如何在團(tuán)隊(duì)中使用Git進(jìn)行協(xié)作。
9.1、Git 團(tuán)隊(duì)協(xié)作流程
使用主分支:主分支通常是穩(wěn)定的版本,團(tuán)隊(duì)成員從這里創(chuàng)建自己的分支。特性分支:每個(gè)新功能或修復(fù)都應(yīng)該在自己的分支上進(jìn)行開發(fā)。提交和推送:團(tuán)隊(duì)成員定期提交并推送自己的分支更改。代碼審查:使用代碼審查工具(如Pull Request)確保代碼質(zhì)量和規(guī)范。合并:經(jīng)過(guò)審查后,將特性分支合并到主分支。解決沖突:如果有沖突,團(tuán)隊(duì)協(xié)作解決沖突并保持代碼穩(wěn)定。
9.2、解決團(tuán)隊(duì)協(xié)作沖突
在團(tuán)隊(duì)協(xié)作中,當(dāng)不同成員的更改沖突時(shí),需要解決這些沖突。以下是一些解決沖突的步驟:
拉取更新:在進(jìn)行自己的更改之前,先拉取遠(yuǎn)程倉(cāng)庫(kù)的最新更新。處理沖突:如果出現(xiàn)沖突,打開文件并手動(dòng)解決沖突。提交解決:將解決沖突后的文件提交到自己的分支。更新遠(yuǎn)程倉(cāng)庫(kù):將解決沖突的分支推送到遠(yuǎn)程倉(cāng)庫(kù)。
9.3、代碼審查
代碼審查是團(tuán)隊(duì)協(xié)作中的重要環(huán)節(jié),可以幫助發(fā)現(xiàn)潛在的問(wèn)題并提高代碼質(zhì)量。通常使用Pull Request(PR)工具進(jìn)行代碼審查。
創(chuàng)建PR:在特性分支開發(fā)完成后,創(chuàng)建一個(gè)Pull Request。代碼審查:團(tuán)隊(duì)成員審查代碼,并提供反饋和建議。更新和討論:根據(jù)審查意見(jiàn)更新代碼,并與團(tuán)隊(duì)成員討論。合并PR:經(jīng)過(guò)審查和討論后,將PR合并到主分支。
9.4、分支保護(hù)和權(quán)限管理
在團(tuán)隊(duì)協(xié)作中,可以使用分支保護(hù)和權(quán)限管理來(lái)確保代碼的質(zhì)量和安全性。
分支保護(hù):限制誰(shuí)可以直接將代碼推送到主分支,只能通過(guò)PR合并。權(quán)限管理:根據(jù)團(tuán)隊(duì)成員的角色,分配合適的權(quán)限,如寫權(quán)限、合并權(quán)限等。
10、附錄
常用 Git 命令速查表
基本操作
初始化倉(cāng)庫(kù):git init克隆遠(yuǎn)程倉(cāng)庫(kù):git clone
分支操作
創(chuàng)建分支:git branch
遠(yuǎn)程倉(cāng)庫(kù)操作
關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù):git remote add
高級(jí)操作
重寫歷史:git commit --amend、git rebase -i
重置和回退:git reset --soft
團(tuán)隊(duì)協(xié)作
創(chuàng)建Pull Request:在遠(yuǎn)程倉(cāng)庫(kù)上操作代碼審查:通過(guò)Pull Request 進(jìn)行解決沖突:手動(dòng)編輯文件解決沖突分支保護(hù)和權(quán)限管理:在遠(yuǎn)程倉(cāng)庫(kù)上設(shè)置
常見(jiàn)問(wèn)題解決
解決沖突:手動(dòng)編輯沖突文件撤銷錯(cuò)誤提交:git reset --soft HEAD^、git reset --hard HEAD^、重寫歷史丟棄未提交更改:git restore
柚子快報(bào)激活碼778899分享:Git 超詳細(xì)使用教程
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。