柚子快報(bào)激活碼778899分享:僅一篇精通git
柚子快報(bào)激活碼778899分享:僅一篇精通git
一 版本控制
1.1 團(tuán)隊(duì)開發(fā)需要
Git在團(tuán)隊(duì)開發(fā)中的作用
備份代碼還原協(xié)同修改: 解決修改同一分支發(fā)生沖突多版本項(xiàng)目文件管理: 備份多版本追溯問題代碼的編寫人和編寫時(shí)間: 版本回溯權(quán)限控制: 項(xiàng)目中的各種權(quán)限控制
1.2 版本控制思想
至始至終記錄和控制項(xiàng)目
1.2.1 版本工具
集中式版本控制(SVN)
操作簡(jiǎn)單,功能差,落后
分布式版本控制(Git)
操作相對(duì)復(fù)雜,功能強(qiáng)大
二 Git簡(jiǎn)介
Git下載安裝
開源分布式版本控制工具
TortoiseGit下載安裝
Git操作可視化工具
三 Git命令操作
3.1 初始化倉(cāng)庫(kù)
Git倉(cāng)庫(kù)有兩種
本地倉(cāng)庫(kù)遠(yuǎn)程倉(cāng)庫(kù)
初始配置
名稱(名稱拼音)
git config --global user.name "Your Name"
郵箱(公司郵箱)
Bash git config --global user.email "email@example.com"
初始化本地倉(cāng)庫(kù)
git init
3.2 添加文件
本地倉(cāng)庫(kù)操作
創(chuàng)建文件
touch Ifile.txt
提交到暫存區(qū)
git add Ifile.txt
# 其他添加方式
git add file01.txt file02.txt
git add .
提交文件到版本庫(kù)
git commit -m "添加了Ifile.txt"
遠(yuǎn)程倉(cāng)庫(kù)操作
3.3 Git流程全景圖
3.4 Git工作流程
3.5 Git工作區(qū)和暫存區(qū)
3.6 查看文件狀態(tài)
git status
3.7 查看更新日志
git log
# 使用其他方法
git log --pretty=oneline
# 查看分支版本變化
git reflog
版本ID
版本ID使用算法SHA-1算法產(chǎn)生
3.8 查看差異
查看差異使用界面化工具更加友好
git diff # 查看版本之間的文件差異
3.9 版本回退
注意版本回退到,log查看不到回退到指定的版本之后的新版本(回退的指定版本為回退后最新版本)
版本回退命令
git reset --hard HEAD^ # 回退到上個(gè)版本
git reset --hard
版本回退后最新返回分支
git reflog # 查看分支版本變化
git reset --hard
3.10 管理修改
使用Git修改文件需要考慮二次修改問題(即相同文件多次修改,每次修改后要添加到暫存區(qū))
操作方法1(有誤)
第一次修改 -> git add -> 第二次修改 -> git commit
# 會(huì)丟失最后一次add后的所有修改
操作方法2(推薦)
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
# 提交了所有修改
每次提交到暫存區(qū)相當(dāng)于預(yù)提交,提高了提交效率,且說明了暫存區(qū)存在的意義
3.11 撤銷修改
git checkout --
3.12 刪除文件
git rm
git add . #提交到暫存區(qū)
git commit #提交到版本庫(kù)
3.13 分支管理
3.13.1 查看分支
git branch #branch很有意思
3.13.2 創(chuàng)建分支
git branch
3.13.3 切換分支
git checkout
3.13.4 創(chuàng)建+切換分支
git checkout -b
3.13.5 分支合并
git merge
# 將指定分支合并到當(dāng)前分支 注意:分支合并后不會(huì)消失,注意在commit后再切換分支
3.13.6 項(xiàng)目開發(fā)流程
3.13.7 遠(yuǎn)程倉(cāng)庫(kù)交互
1.推拉操作 Git push操作用于將本地倉(cāng)庫(kù)的提交推送(即上傳)到遠(yuǎn)程倉(cāng)庫(kù)。通常的語(yǔ)法是:
git push
其中:
例如,如果要將本地的 main 分支的提交推送到遠(yuǎn)程倉(cāng)庫(kù) origin 上,可以使用以下命令:
git push origin main
如果遠(yuǎn)程倉(cāng)庫(kù)有更新,但本地倉(cāng)庫(kù)沒有同步這些更新,可以使用 git pull 命令先將遠(yuǎn)程倉(cāng)庫(kù)的更新拉取到本地,然后再進(jìn)行 git push 操作。
請(qǐng)確保在執(zhí)行 git push 操作之前,先進(jìn)行了適當(dāng)?shù)奶峤唬╣it commit)以保存本地的修改。
Git pull操作用于從遠(yuǎn)程倉(cāng)庫(kù)拉?。聪螺d)最新的更改并合并到當(dāng)前分支。通常的語(yǔ)法是:
git pull
其中:
例如,如果要從遠(yuǎn)程倉(cāng)庫(kù) origin 拉取 main 分支的最新更改并合并到當(dāng)前本地分支,可以使用以下命令:
git pull origin main
Git pull實(shí)際上包含了兩個(gè)操作:git fetch 和 git merge。具體來說:
git fetch:從遠(yuǎn)程倉(cāng)庫(kù)下載最新的更改,但不會(huì)自動(dòng)合并到當(dāng)前分支。git merge:將下載的更改合并到當(dāng)前分支。
如果遠(yuǎn)程倉(cāng)庫(kù)有新的提交,使用 git pull 可以將這些提交下載并合并到當(dāng)前分支,使本地倉(cāng)庫(kù)保持最新狀態(tài)。
需要注意的是,如果本地有未提交的修改,可能會(huì)導(dǎo)致合并沖突,此時(shí)需要手動(dòng)解決沖突后再進(jìn)行提交。
總結(jié)來說,git pull 是從遠(yuǎn)程倉(cāng)庫(kù)拉取更新并合并到當(dāng)前分支的操作。
常規(guī)
常用的分支 Master分支
主分支,項(xiàng)目初始點(diǎn)由這個(gè)分支發(fā)起,后續(xù)該分支作為項(xiàng)目版本標(biāo)記分支,可以理解為備份分支,從這里可以追溯項(xiàng)目發(fā)布所有版本??梢詮脑摲种Ю鹑我忭?xiàng)目版本,并能平穩(wěn)運(yùn)行。注意:Master分支不允許程序員在此寫代碼。
Develop 分支
開發(fā)分支,初始時(shí)居于Master分支創(chuàng)建,團(tuán)隊(duì)所有開發(fā)代碼集中合并的分支。另外,Develop分支維護(hù)項(xiàng)目最新代碼。
Feature 分支
功能分支,基于Develop分支創(chuàng)建的新分支,用于新功能/新模塊的開發(fā)。當(dāng)開發(fā)完成之后,需要合并回到Develop分支。這分支是程序員獨(dú)屬分支,不存與團(tuán)隊(duì)源碼庫(kù)。
Release分支
當(dāng)你需要一個(gè)發(fā)布一個(gè)新版本時(shí),基于Develop分支創(chuàng)建一個(gè)Release分支。此時(shí)需要注意,屬于該版本的所有Feature分支需要合并到Develop分支。Release分支創(chuàng)建成功后,對(duì)該版本進(jìn)行測(cè)試,改bug,完成后,需要將代碼合并到Master和Develop分支。合并到Master分支,會(huì)對(duì)Master打上標(biāo)簽,表示一個(gè)新的版本。合并到Develop分支,需要注意,其他非該版本的Feature分支再?zèng)]有完成Release分支發(fā)布前,不允許合并會(huì)Develop分支。
Hotfix分支
當(dāng)項(xiàng)目上線后,運(yùn)行發(fā)現(xiàn)新的Bug時(shí)候,則需要基于Master創(chuàng)建一個(gè)Hotfix, 完成Hotfix后,我們合并回Master和Develop分支,所以Hotfix的改動(dòng)會(huì)進(jìn)入下一個(gè)Release版本。
詳細(xì)blog
reliease測(cè)試成功后合并到master
master有bug就拆出分支hotfix,hotfix修復(fù)后合并到master和dev分支,始終保持master分支與dev分支一致
3.14 文件沖突
不同分支修改同一文件的同一部分后,各自合并到同一分支會(huì)發(fā)生沖突
git merge
四 Git可視化操作
4.1 初始化倉(cāng)庫(kù)
設(shè)置用戶名和郵箱
創(chuàng)建倉(cāng)庫(kù)
4.2 添加文件
添加選中文件(add操作)
提交
備注信息/提交選中文件
4.3 查看文件狀態(tài)
觀察圖標(biāo)
4.4 查看提交日志
選中空白查看/選中單個(gè)文件查看
4.5 查看差異
4.6 版本回退
先打開日志選擇需要的版本選擇回退模式
4.7 刪除文件
刪除+add+提交
4.8 分支管理
切換分支創(chuàng)建分支合并分支查看當(dāng)前分支 紅色部分是當(dāng)前分支
4.9 文件沖突
最后提交
五 遠(yuǎn)程倉(cāng)庫(kù)
GitHub/GitLab/Gitee
GitHub可以加速
六 IDEA中操作Git
IDEA操作
如果倉(cāng)庫(kù)里有多個(gè)項(xiàng)目,那么先用Git命令克隆倉(cāng)庫(kù),再使用需要的項(xiàng)目
獲取鏈接 打開IDAE IDEA中狀態(tài)用顏色來區(qū)分 棕色:還未執(zhí)行add
? 綠色:已經(jīng)add但是還未執(zhí)行commit
? 藍(lán)色:與本地倉(cāng)庫(kù)的狀態(tài)不同(發(fā)生修改)
黑色:正常狀態(tài) 與本地倉(cāng)庫(kù)狀態(tài)相同
? 其他的自己想
Git操作 提交 推拉動(dòng)作與遠(yuǎn)程倉(cāng)庫(kù)交互
完整開發(fā)流程
克隆項(xiàng)目 創(chuàng)建自己開發(fā)分支 在自己本地分支編碼并測(cè)試 切換到本地master分支 將自己的分支代碼合并到master分支并測(cè)試 將本地master分支推送至遠(yuǎn)程master分支 模擬同事將本地master分支推送至遠(yuǎn)程master分支(遠(yuǎn)程master更新) 切換本地master分支更新本地master(拉取遠(yuǎn)程最新master) 切換到自己本地開發(fā)分支將最新的master分支合并到自己的開發(fā)分支 重復(fù)5-9 本地開發(fā)分支備份到遠(yuǎn)程倉(cāng)庫(kù)/回家下載打工,將自己的分支推送到倉(cāng)庫(kù) 注意:
文件沖突
將遠(yuǎn)程master合并到本地master 解決沖突 繼續(xù)推push
提交規(guī)范
(1)feat:新功能(feature) (2)fix:修補(bǔ)bug (3)docs:文檔(documentation) (4)style:格式(不影響代碼運(yùn)行的變動(dòng)) (5)refactor:重構(gòu)(即不是新增功能,也不是修改bug的代碼變動(dòng)) (6)test:增加測(cè)試 (7)chore:構(gòu)建過程或輔助工具的變動(dòng)
柚子快報(bào)激活碼778899分享:僅一篇精通git
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。