Git är ett distribuerat versionsstyrningssystem - ett verktyg för att spåra ändringar gjorda i en uppsättning filer eller samordna arbetet över tiden. Det används ofta av programmerare för att samordna ändringar i programkällkod och det bästa. Det kan användas för att spåra någon form av innehåll alls. Den är speciellt utformad för att hantera allt från små till stora volymprojekt med största sped och effektivitet. Det är extremt flexibelt, eftersom individer kan dela arbete direkt mellan sina personliga förråd och grupper kan samordna sitt arbetsflöde genom ett centralt förvar. Det tillåter helt enkelt att två utvecklare sitter på två olika platser för att göra och spela in förändringar självständigt, alla utan ett centralt förråd.
Sammanslagning är en vanlig praxis i Git som används för att integrera förändringar från en gren till en annan. Git-fusion är ett kommando som förbinder ändringar till en annan plats. Det gör det möjligt för utvecklare att ta sina oberoende kodserier skapade av Git-filialen och integrera dem i en enda filial. Detta ändrar bara målbranschen medan källkällans historia kvarstår. Git rebase är ännu ett kommando som används i grunden för samma ändamål, utom det gör det ganska annorlunda. De båda gör samma sak - införlivar förbinder sig från en gren till en annan - men skillnaden ligger i hur de gör det. Vi lyfter fram några viktiga skillnader som jämför de två.
Git-fusion är ett kommando som förenar två eller flera förlovningshistoria. En sammanslagning förenar ofta bara två grenar, även om Git stöder sammanslagning av tre, fyra eller flera grenar samtidigt. Git-sammanslagning används av Git-drag för att införliva ändringar från en gren till en annan eller från ett annat förråd helt och hållet. Sammanslagning måste ske inom ett enda förråd, vilket innebär att alla grenar som behöver slås samman bör vara närvarande i samma förråd. Sammanslagningssituationer resulterar vanligtvis av två eller flera användare, försöker uppdatera gemensam kod. Vanligtvis förenar en användare en filial till en annan filial i sitt lokala förråd i en lokal miljö. Git-sammanslagning integrerar specifikt innehållet i en källgren med en målbransch. Målbranschen ändras, medan källbranschen förblir.
Git rebase är ännu ett alternativ till sammanslagning som används för att integrera en annan filial med filialen där du för närvarande arbetar, förutom att den håller en linjär förbindelsehistorik. Syftet med Git rebase är att flytta en gren från en plats till en annan. Som förpliktelser är oföränderliga kan de inte flyttas, så det innebär att man gör nya förpliktelser med samma förändringar och metadata. En rebase förändrar i grunden begreppet när och där en följd av fördrag utvecklades, vilket resulterar i att vissa aspekter av utvecklingshistorien går förlorade. Det innebär att den ursprungliga förpliktelsen som utvecklingen baserades ursprungligen kommer att ändras. Det innehåller effektivt alla nya förpliktelser i huvudgrenen genom att skriva om historien. Som ett resultat skapar det nya förpliktelser för varje engagemang i den ursprungliga filialen.
- Även om både sammanfoga och rebase är de vanligaste sätten att integrera förändringar i Git och de tjänar samma syfte - att kombinera flera grenar till en - skillnaden ligger i hur de uppnår det. Git-sammanslagning integrerar innehållet i en källgräns med en målbransch, samtidigt som man behåller förfäderna för varje commithistorik medan Git rebase inkorporerar alla de nya förbindelserna i huvudgrenen genom att skriva om historiken genom att skapa nya förpliktelser för varje commit i källgrenen.
- Med Git-sammanslagning växlar du först till filialen som ska slås samman och använd sedan sammanslagningskommandot för att välja en fil för att sammanfoga. Med tanke på att en gren pekar på en commit och att en commit är den granularitet som du associerar ändras med, sammanfogar kommandot slår samman på gren eller bindningsnivå. Rebase är å andra sidan lite annorlunda. Först väljer du en fil för att rebase och använder sedan kommandot för att välja var du ska placera den.
- Sammanslagning skapar ett nytt engagemang som representerar sammanslagningen mellan två grenar. Den integrerar förändringar från olika parallella utvecklingslinjer (grenar) tillsammans genom att skapa en sammanslagning. Syftet är att ansluta sig till två eller flera grenar, inklusive alla förändringar sedan divergensen i den nuvarande grenen. Snabbspolning är standardfusionsbeteendet i Git. Återställa å andra sidan ändra enskilda förpliktelser genom att skriva om projekthistoria genom att skapa nya förpliktelser för varje förbindelse i den ursprungliga filialen, vilket i sin tur leder till linjär historia utan divergerande grenar.
- Git-sammanslagning förändrar inte historiken, samtidigt som filialens sammanhang hålls, vilket innebär att de befintliga filialerna inte förändras på något sätt. Det skapar ett nytt engagemang (om det inte var en snabbsammanställning), men förbindelserna är fortfarande nåbara från filialen. Git rebase, å andra sidan, effektiviserar en potentiellt komplex historia. Uppdrag är omskrivna, gamla versioner är glömda, och DAG för revisioner ändras. Engagemang kan inte nås med rebase vilket innebär att du inte längre kan återkalla publicerade filialer.
Tja, i ett nötskal, är båda sammanfogning och rebase de två sätten att integrera förändringar i Git, men de skiljer sig åt hur de gör det. Sammanfoga är en enstegsoperation med en plats för att lösa konflikter och de förpliktelser som kunde nås från filialen är fortfarande nåbara. Rebase, å andra sidan, nyttar varje förpliktelse individuellt genom omskrivning av historia genom att skapa nya förpliktelser för varje commit i källgrenen. Så, vad som var en gång nås kan inte nås. En rebase förändrar fundamentalt begreppet när och var en följd av fördrag utvecklades.