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.
Bejegyzés navigáció