git再基(git rebase)和合併(merge)的區別

Git是一個分散式版本控制系統,是一種跟蹤對一組檔案所做更改或協調工作的工具。程式設計師經常使用它來協調對軟體原始碼和最佳部分的更改;它可以用來跟蹤任何型別的內容。它是專門設計來處理一切從小到大批次專案以最大的速度和效率。它非常靈活,意味著個人可以直接在個人儲存庫之間共享工作,而團隊可以透過中央儲存庫協調工作流程。它只允許位於兩個不同位置的兩個開發人員獨立地進行和記錄更改,而無需中央儲存庫。...

Git是一個分散式版本控制系統,是一種跟蹤對一組檔案所做更改或協調工作的工具。程式設計師經常使用它來協調對軟體原始碼和最佳部分的更改;它可以用來跟蹤任何型別的內容。它是專門設計來處理一切從小到大批次專案以最大的速度和效率。它非常靈活,意味著個人可以直接在個人儲存庫之間共享工作,而團隊可以透過中央儲存庫協調工作流程。它只允許位於兩個不同位置的兩個開發人員獨立地進行和記錄更改,而無需中央儲存庫。

合併是Git中的一種常見做法,用於整合從一個分支到另一個分支的更改。Git merge是一個將更改提交到另一個位置的命令。它允許開發人員將Git分支建立的獨立程式碼行整合到單個分支中。這隻會在源分支的歷史保持不變的情況下更改目標分支。Git rebase是另一個基本上用於相同目的的命令,只是它的作用截然不同。它們都做相同的事情—將一個分支的提交合併到另一個分支—但區別在於它們是如何做的。我們強調了比較兩者的一些關鍵區別點。

 

git再基(git rebase)和合併(merge)的區別

什麼是合併分支(git merge)?

Git merge是一個統一兩個或多個提交歷史分支的命令。合併通常只合併兩個分支,儘管Git支援同時合併三個、四個或更多分支。Git pull使用Git merge合併從一個分支到另一個分支或從另一個儲存庫的更改。合併必鬚髮生在單個儲存庫中,這意味著所有需要合併的分支都應該存在於同一個儲存庫中。合併情況通常由兩個或多個使用者嘗試更新公共程式碼而產生。最常見的情況是,使用者將一個分支合併到本地環境中其本地儲存庫中的另一個分支中。gitmerge專門集成了源分支和目標分支的內容。目標分支已更改,而源分支仍保留。

什麼是git再基(git rebase)?

Git rebase是另一種替代合併的方法,用於將另一個分支與當前工作的分支整合,只是它保留了一個線性提交歷史記錄。Git rebase的目的是將分支從一個位置移動到另一個位置。由於提交是不可變的,它們不能被移動,因此這需要使用相同的變更集和後設資料進行新的提交。rebase從根本上改變了何時何地開發一系列提交的概念,這導致開發歷史的某些方面丟失。這意味著開發最初基於的原始提交將被更改。它透過重寫歷史,有效地合併了主分支中的所有新提交。因此,它為原始分支中的每個提交建立新的提交。

git再基(git rebase)和合併(merge)的區別

 

git rebase和merge之間的區別

  1. Git重基和合併的基礎知識

–儘管合併和重基都是在Git中整合更改的最常見方法,它們的目的是相同的–將多個分支合併為一個分支–區別在於它們是如何實現的。Git merge集成了源分支和目標分支的內容,同時保留了每個提交歷史的祖先,而Git rebase則透過為源分支中的每個提交建立新的提交來重寫歷史,從而合併了主分支中的所有新提交。

  1. Git重基合併工作

–使用Git merge,首先切換到要合併的分支,然後使用merge命令選擇要合併的分支。假設分支指向提交,並且提交是與更改相關聯的粒度,那麼合併命令將在分支或提交級別進行合併。另一方面,Rebase有點不同。首先選擇要重設基礎的分支,然後使用“重設基礎”命令選擇將其放置的位置。

  1. Git重設基礎和合併的目的

–合併建立一個新的提交,表示兩個分支之間的合併。它透過建立合併提交將來自不同並行開發線(分支)的更改整合在一起。其目的是將兩個或多個分支連線在一起,包括從發散點到當前分支的所有更改。快進是Git中預設的合併行為。另一方面,重定基透過重寫專案歷史來改變單個提交,方法是為原始分支中的每個提交建立新的提交,從而導致沒有分支的線性歷史。

  1. Git重設基礎和合併的歷史

–Git merge不會更改歷史記錄,同時保留分支的上下文,這意味著現有分支不會以任何方式更改。它建立了一個新的提交(除非是快進合併),但是提交仍然可以從分支訪問。另一方面,Git-rebase簡化了一個潛在的複雜歷史。提交被重寫,舊版本被遺忘,修訂的DAG被改變。使用rebase無法再訪問提交,這意味著您無法再重新設定已釋出分支的基礎。

調整基礎與合併:比較圖

git再基(git rebase)和合併(merge)的區別

 

總結 - git rebase的(of git rebase) vs. 合併(merge)

簡言之,merge和rebase都是在Git中整合更改的兩種方法,但是它們在實現方式上有所不同。合併是一個一步操作,只有一個位置可以解決衝突,並且可以從分支訪問的提交仍然可以訪問。另一方面,Rebase透過為源分支中的每個提交建立新的提交來重寫歷史,從而分別重新應用每個提交。所以,曾經可以到達的東西現在已經不可以到達了。rebase從根本上改變了何時何地開發提交序列的概念。

  • 發表於 2021-06-25 22:29
  • 閱讀 ( 39 )
  • 分類:科技

你可能感興趣的文章

吉特(git)和github(github)的區別

...統,Github是Git儲存庫的託管服務。本文討論Git和Github之間的區別。 目錄 1. 概述和主要區別 2. 什麼是Git 3. 什麼是Github 4. Git和Github的相似之處 5. 並列比較——Git與Github的表格形式 6. 摘要 什麼是吉特(git)? 小專案不一定要做版本...

  • 發佈於 2020-10-19 21:44
  • 閲讀 ( 50 )

如何使用git分支來構造程式設計專案

... git merge testing ...

  • 發佈於 2021-03-12 01:24
  • 閲讀 ( 49 )

像使用git的程式設計師一樣管理檔案版本控制

... git merge experiment2 ...

  • 發佈於 2021-03-13 08:00
  • 閲讀 ( 40 )

為編寫者和開發人員提供的5個最佳mac檔案比較工具

... 檔案比較工具幫助您比較和合並同一檔案的兩個(或多個)版本之間的差異。有不同型別的實用程式,每種都是為特定型別的資料和檔案格式定製的。我們來看看一些最好的macOS檔案比較應用程式...

  • 發佈於 2021-03-18 17:33
  • 閲讀 ( 48 )

如何使用github頁面免費託管網站

... GitHub頁面就是這樣一種選擇,在本文中,我們將向您展示如何****GitHub頁面託管一個簡單的網站。 ...

  • 發佈於 2021-03-19 05:27
  • 閲讀 ( 51 )

git的終極指南---索取你的免費電子書!

...用Git所需的一切知識,從解釋Git是什麼以及它與其他工具的區別,到它的用法,包括將為版本控制過程增加價值的高階主題和實踐。 ...

  • 發佈於 2021-03-20 15:14
  • 閲讀 ( 36 )

下面介紹如何清理git並刪除未跟蹤的檔案

未跟蹤的檔案會把你的Git工作樹弄得亂七八糟。有時,這些未跟蹤的檔案可能是文字或其他您不想在遠端儲存庫中使用的檔案,也可能是在轉移提交後以某種方式錯誤建立的檔案。 ...

  • 發佈於 2021-03-26 21:32
  • 閲讀 ( 39 )

加入社會化編碼潮流,為github儲存庫做出貢獻

你有沒有在GitHub上找到一個你喜歡的包,但是想新增一個快速的特性,修復你發現的一個bug,或者僅僅作為一個整體貢獻給開源?加入社會編碼的潮流,分享你的技能,幫助開源世界受益。在本文中,瞭解如何將程式碼貢獻給Git...

  • 發佈於 2021-03-27 04:33
  • 閲讀 ( 44 )

如何在本地和遠端刪除git中的分支

... 一個關鍵區別是,在確認過程中,可以將遠端分支與其本地分支一起刪除: ...

  • 發佈於 2021-03-28 02:05
  • 閲讀 ( 59 )

如何在github上建立第一個儲存庫

流行的Github站點和git工具都是一個優秀的資源,不僅可以分發和展示您的工作,還可以促進高效和專業的版本控制。 ...

  • 發佈於 2021-03-28 23:04
  • 閲讀 ( 58 )
mup6644
mup6644

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦