a legtöbb kód integrációk történni egy egyesítés, de néha a fejlesztő azt akarja, hogy a helyi kódot utolérjék a mester ág egy rebase helyett. Ebben a példában bemutatjuk, hogyan kell Git rebase egy ág mester használata helyett az egyesítés parancsot, ugyanakkor rámutatva a hatását teljesítő Git rebase mester művelet.

mit jelent a GIT rebase to master?,

ebben az oktatóanyagban a develop nevű ágat vesszük át, majd a mester hegyére visszük.

A fejlesztői ág megszakadt a master-től a commit C-nél, így mindkét ág megosztja a fájlokat a.html, b.html és c.html. Lásd az alábbi képet, hogy segítsen elképzelni ezt.

mivel az ág történt, mester hozzá commit D és E. Ez azt jelenti, mester két fájlt, hogy dolgozzon nincs, nevezetesen d.html és e.html.,

Ez az, hogy a Git repository úgy néz ki, mielőtt a git rebase a mester.

Továbbá, mivel a split, már két új kötelezettséget a fejlesztési ág, hozzátéve, a fájlokat f.html és g.html. Ezek a fájlok a fejlesztési ág, hogy a mester ág nem.

így néz ki a GitLab adattár a GIT rebase-ről a master-re.,

hatása a Git rebase

miután egy sikeres fejlesztési ág master rebase:

  • a fájlok a master branch nem változik
  • a fejlesztő ág továbbá megszerzi az összes master branch új fájlok
  • a fejlesztés patak ág pont megváltozik.
    • úgy tűnik, mintha a fejlesztési ág szétválna a commit E után a főágon.
    • a rebase előtt a develop branch split from master at commit C.,

Git rebase to master command syntax

a GIT rebase to master művelet végrehajtása egyenesen előre történik. Egyszerűen csatolja a parancs végéhez a forráság nevét, majd az ág nevét a rebase-hez. Rebase fejleszteni, hogy elsajátítsák a parancs a következő:

git rebase master develop

figyelmeztetés: van egy git rebase rá kapcsoló, amely néha a fejlesztők tévesen úgy vélik, hogy szükség van, hogy tartalmazza a rebase parancsot. Ha így tesz, akkor a kötelek lemerülnek, és a fájlok elvesznek., Ne kövesse el azt a hibát, hogy egy git rebase-t hajt végre a működésre.

a rebase előtt a fejlesztői ágnak csak öt fájlja volt.

Minden ág öt fájlokat, mielőtt a git rebase mester művelet.

a GIT rebase to master után a fejlesztői ágnak hét fájlja van. Megtartotta az összes eredeti fájlját, és két új fájlt szerzett meg a mesterág csúcsáról., A mester ágban lévő fájlok száma azonban változatlan marad.

miután a GIT rebase fejlesztése a mester, a fejlesztő ág megszerzi az összes mester fájlokat.

az a tény, hogy a mesterág nem szerzett fájlokat a fejlesztői ágból, gyakran új Git felhasználókat dob ki, de ez a várható viselkedés. A git rebase nem szinkronizál az ágak között. Egyszerűen elkapja az egyik ágat a legfrissebb változásokkal a másiktól.,

A fájlok száma fejleszteni növekedés után a git rebase a mester.

óvatosan járjon el

amikor Git rebase fordul elő, a tároló commit története helyrehozhatatlanul megváltozik. A példánkban szereplő rebase után a commit F és G teljesen új commit ID-ket kap, a régi commit ID-ket pedig eldobjuk. Ezért gyakran látni fogja, hogy az újraszabályozott kötelezettségvállalások F’ és G’ jelöléssel vannak ellátva, hogy hangsúlyozzák azt a tényt, hogy új commit azonosítókat rendeltek hozzá.,

Ha egy másik fejlesztővel megosztott fióktelepet újraindít, és a módosításokat githubra vagy Gitlabra Tolja vissza, egy másik fejlesztő különféle vagy problémákkal fog szembesülni, amikor megpróbálják az újraindított tárolót a helyi fejlesztési környezetükbe húzni. A távvezérlőn a helyi fiókok eltűnnek, a távoli ágnak pedig összeférhetetlen fióktörténete lesz. Ahogy el tudná képzelni, egy közös ág újraindítása vagy a Gittkötelek szétzúzása pusztítást okozhat.,

Rebase to GitHub or GitLab

valójában, ha rebase and try to push to GitLab or GitHub, a szerver nem teszi lehetővé a műveletet kell végrehajtani. A githubra vagy GitLab –ra való visszatéréshez a fejlesztőnek hozzá kell adnia a-force kapcsolót a git push parancshoz, hogy kényszerítse az elfogadandó változtatásokat.

git push origin --force

a GitLab vagy GitHub rebase push elutasításra kerül, kivéve, ha kénytelen.,

Az elfogadott logika az, hogy csak git rebase a mester ágak Helyi a személyes munkaterületen. Így a Git clean up parancsok nem befolyásolják senki más. Ne végezzen Git rebase-t a többi fejlesztővel megosztott fióktelepek elsajátításához. A rebase rá mester rendben van, csak nem fordítva. Ellenkező esetben valószínű, hogy megtöri a build és push vagy pull műveletek kerülnek a készenléti, meghiúsítja folyamatos fejlesztés és így persona non grata a többi fejlesztő és DevOps csapat.