成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文讓你明白 Git 分支是如何工作的

系統(tǒng) Linux
分支是 Git 版本跟蹤的核心功能,并且經(jīng)常被使用相同軟件代碼庫的團(tuán)隊(duì)使用。我們將深入研究它們?nèi)绾卧谀缓蠊ぷ鳎约叭绾问褂盟鼈儊砀倪M(jìn) Git 工作流程。

分支是 Git 版本跟蹤的核心功能,并且經(jīng)常被使用相同軟件代碼庫的團(tuán)隊(duì)使用。我們將深入研究它們?nèi)绾卧谀缓蠊ぷ鳎约叭绾问褂盟鼈儊砀倪M(jìn) Git 工作流程。

什么是分支?

分支用于拆分 Git 歷史記錄。您可以將 Git 提交想象成一系列可以追溯到過去的更改。您可以“簽出checkout”任何這些提交,并將本地目錄及時移回提交時的狀態(tài)。

分支通常用于處理實(shí)驗(yàn)性功能,或需要一段時間的更改,或任何其他可能破壞存儲庫的東西。例如,您可能正在重構(gòu)代碼庫的一個重要組件,并且在完成之前,您希望master 分支保持穩(wěn)定。

一旦新feature 分支穩(wěn)定了,它就可以重新合并到master中,通常是通過 拉取請求,這是一個允許在進(jìn)行更改之前進(jìn)行代碼審查和測試的過程。

然而,在幕后,分支的工作方式與您最初預(yù)期的略有不同。在 Git 中,分支只是指向特定提交的標(biāo)簽或指針。就是這樣,master 分支只是指向最新的提交master;當(dāng)您進(jìn)行新的提交時,標(biāo)簽會更新為指向新的提交。

雖然將提交視為及時推進(jìn)是有用的;實(shí)際上,Git 提交指向彼此。每個提交都有對最后一次提交的引用,并且這個鏈用于構(gòu)造存儲庫的狀態(tài)。

但是,如果您創(chuàng)建一個新分支,則情況會有所不同。您簽出的任何分支(使用git checkout <branch>)都將用作新提交的標(biāo)簽。

要在此示例中創(chuàng)建分支,您必須首先確保將存儲庫 HEAD 設(shè)置為master 分支。這是因?yàn)槟鷮?shí)際上可以從任何地方開始創(chuàng)建分支——包括過去的提交或其他分支上的提交。

git checkout master

然后創(chuàng)建一個新分支,并交換到它:

git branch feature
git checkout feature

此時,您的存儲庫中的任何內(nèi)容都沒有改變。feature 和分支標(biāo)簽都master 指向同一個提交。

但是,您從此時開始提交的任何內(nèi)容都將添加到feature 分支中。更具體地說,將創(chuàng)建一個新提交,設(shè)置為指向當(dāng)前提交,并且“功能”標(biāo)簽將更新為指向這個新提交。

您甚至可以checkout master 在主分支上進(jìn)行更多提交。它不會影響feature 分支,因?yàn)闃?biāo)簽所知道的只是它指向那個特定的提交。它不會隨master 標(biāo)簽更新。

合并和變基(Merging 和 Rebasing)

當(dāng)然,如果分支永遠(yuǎn)卡在那里,它們就不會太有用了,因此 Git 提供了將它們合并回master 分支的工具。從技術(shù)上講,只要?dú)v史兼容,您就可以將子分支合并到任何其他分支中。

最簡單的情況是您有一個只需要合并回來的簡單分支。您可以簽出master 分支,然后運(yùn)行g(shù)it merge feature 以將在功能分支上所做的所有提交“重播”到 master 上。

這會將它們合并到主時間線中,并使用更改創(chuàng)建一個新的“合并提交”。

但它并不總是那么簡單,而且在許多情況下,您將遇到 需要解決的合并沖突。這可能包括分支修改文件中的相同行、文件移動或刪除,或feature 在創(chuàng)建分支后更改軟件時出現(xiàn)的其他類型的錯誤。

如果您有一個長時間運(yùn)行的feature 分支,則將這個問題最小化的一種方法是執(zhí)行頻繁的合并,這次相反——從master 主支到 feature 分支上,這保持feature 最新,雖然它并沒有真正減少所需的工作量,但它可以防止它陷入一片混亂。

這種策略對于長期存在的分支很常見,通常被認(rèn)為是 Git 的最佳實(shí)踐。

在這種情況下也使用的另一個工具是變 基。基本上,變基就像拿起整個分支并將其移動到從新位置開始,通常是存儲庫中的最新提交。在某些情況下,這會導(dǎo)致更清晰的 Git 歷史記錄,并且是某些復(fù)雜情況的首選解決方案。

然而,Git 歷史是“不可變的”,并且由于這種變基復(fù)制提交而不是實(shí)際移動它們。如果沒有與您的團(tuán)隊(duì)正確協(xié)調(diào),這可能會導(dǎo)致共享分支上的許多問題——如果您重新設(shè)置基準(zhǔn),并且您的同事在“舊”、現(xiàn)已刪除的功能分支上進(jìn)行新提交,它將被擱置。他們將不得不隱藏提交并將其彈出到新分支以協(xié)調(diào)更改。

如何使用分支?

要開始創(chuàng)建新分支,您需要將存儲庫置于正確狀態(tài),以便新分支標(biāo)簽從您想要的位置開始。如果您要從 分支master,只需簽出整個分支以從最新提交開始。否則,您可以通過簽出單個提交將您的 repo 置于分離的 HEAD 狀態(tài)。

git checkout master
git checkout aa3e570923b8ee61414cec17d9033faab4f084a6

然后,您可以創(chuàng)建新分支,并使用checkout切換到它:

git branch feature
git checkout feature

這可以在一個命令中完成,帶有-b 結(jié)帳標(biāo)志:

git checkout -b feature

此時,您的 repo 中所做的任何提交都將提交到新分支。

如果您需要再次交換分支,只需運(yùn)行g(shù)it checkout master 即可恢復(fù)正常。

如果您有需要移動的本地更改,可以將它們放入git stash. 更改將被存儲,并且可以在交換分支后重新應(yīng)用。

git stash  
git checkout feature
git stash apply
責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2025-06-04 03:21:00

RAGRetrievalGeneratio

2022-09-29 10:26:59

iOSScaffoldflutter

2023-05-29 08:45:45

Java注解數(shù)據(jù)形式

2025-05-21 09:32:28

2024-09-26 07:27:27

2021-01-21 14:26:56

大數(shù)據(jù)互聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用

2020-07-10 08:03:35

DNS網(wǎng)絡(luò)ARPAne

2023-03-10 22:08:20

2021-10-20 08:49:30

Vuexvue.js狀態(tài)管理模式

2024-06-20 08:06:30

2024-05-09 09:09:19

組合模式對象

2024-05-13 10:45:25

中介模式面向?qū)ο?/a>數(shù)量

2024-05-10 08:43:04

外觀模式接口系統(tǒng)

2018-02-02 11:17:42

IaaSPaaSSaaS

2018-05-21 10:20:22

人工智能機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2019-08-27 14:46:59

ElasticSearES數(shù)據(jù)庫

2024-04-18 09:12:58

Git分支代碼

2025-01-13 00:00:15

分支gitmaster

2020-11-12 09:14:25

JAVA.IO、字符編

2019-07-03 15:32:26

路由器網(wǎng)絡(luò)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品日韩 | 91久久| 91精品国产色综合久久 | 久久噜噜噜精品国产亚洲综合 | 日韩中文字幕一区 | 亚洲aⅴ | 久久99深爱久久99精品 | 久久国产精品-国产精品 | 一区亚洲 | 99热首页| 亚洲国产精品视频一区 | 男人午夜视频 | 最新国产精品视频 | 亚洲欧美日韩精品久久亚洲区 | aa级毛片毛片免费观看久 | 毛片的网址 | 精品一区二区三区在线观看国产 | 免费av电影网站 | 综合激情av | 中文字幕一区二区三区不卡在线 | 日本福利在线 | 在线免费观看欧美 | 人人爽日日躁夜夜躁尤物 | 久久久久久亚洲精品不卡 | 中文字幕在线视频一区二区三区 | 无码一区二区三区视频 | 日韩精品视频在线免费观看 | 欧美性视频在线播放 | 黄色大片免费观看 | 黄色大片网 | 日韩手机在线看片 | 国产欧美精品一区二区三区 | 国产精品亚洲一区二区三区在线 | 久久久精品一区二区三区四季av | 欧美福利视频 | 97超碰人人| 久久久综合| 精品视频在线免费观看 | 国产一级视频在线播放 | av在线伊人| 精品久久国产 |