Már jó ideje használom a GitHub-ot, és általában a jellemző ágakat toltam meg, majd elindítottam egy Pull kérést, amelyet magam is összevontam. Úgy találtam, hogy ez segített nyomon követni, hol egyesítettem az ágakat.

De nemrégiben egyre többet olvastam a Git működéséről, és rájöttem, hogy az egyesítés-elkötelezettségeket használhatom arra, hogy utaljak az egyesüléskor. elágazások.

Tehát mit kell tennem, ha a feature-branchet beolvasztom a masterbe:
Hajtsa végre az egyesítés-végrehajtást a masteren, majd nyomja felfelé VAGY Nyomja meg a helyi fiókot, és indítson húzási kérelmet?

Olvastam a következőt: Bevezetési kérelmek bemutatása 2 fős csapathoz – egyesítem a saját kéréseimet? és Mi folyik a munkában két emberrel egy projekten és Nyissam-e meg a hivatalos repó vagy a villám fiókjainak fiókjainak kéréseit? de úgy tűnik, egyikük sem válaszol arra, amit keresek.

Megjegyzések

  • Pontosan mit érzel hiányolni ezekből a válaszokból?
  • Az első abból a szempontból beszél róla, hogy a húzási kérelmeket szakértői felülvizsgálatra szánják. A második munkafolyamatot kínál. A harmadik még ' még nem is áll kapcsolatban.
  • Ezt egy bevált módszerek vagy hogyan lehet fenntartani jó git előzmények szempontból.
  • Amikor egyesítek egy PR-t, akkor az ág helyi összevonásával teszem ezt. Ez lehetővé teszi számomra, hogy megbizonyosodjak arról, hogy az egyesítés tiszta-e, és hogy az eredmény közzététele előtt újra futtassam a teszteket. A GitHub ' s lehívási kérelmek csak ennek a munkafolyamatnak a formalizálása, maga a Git nem rendelkezik PR-ek fogalmával.
  • Amikor egy PR összevonásra kerül, egyesülést hoz létre elköteleződni a mester mellett, ezért nem gondolom, hogy ez bármi különbséget jelentene a git történetében. Tehát nem gondolom, hogy ' nem gondolom, hogy a parancssor és a Github kezelőfelület közötti személyes preferenciáktól eltekintve lenne oka egyik vagy másik felhasználására.

Válasz

git-merge mechanizmus:
A git merge feature használata, míg a masteren az feature ágat egyesíti master és merge-commit -et hoz létre (ha az elágazást nem lehet gyorsan továbbvinni) a git történetében. A készülő merge-commit kényszerítéséhez használja a --no-ff beállítást a merge.

Húzási kérelem egyesítésének mechanizmusa:
Amikor elindítunk egy lekérési kérelmet a GitHubon, létrehoz egy GitHub Issue ahol az emberek az összevonás előtt beszélhetnek és megvitathatják a PR-ben elkövetett kötelezettségvállalásokat. Ha egy PR összevonásra kerül a GitHubon, pontosan ugyanazt csinálja, mint a git merge feature.

Mit kell tennem ?
Tehát ami a történelmet illeti, nincs különbség a kettő között.
És ami a hozzájárulást illeti, a közreműködőknek nem lesz hogy bármi mást tegyek a két helyzetben. Ugyanazok (levonva a kedves kis csevegést).

Legjobb gyakorlatok:
És nem sikerült megtalálni a legjobb gyakorlatokat, de a logika szerint a PR-ek nem sokat segítenek, ha csak egy hozzászóló van egy adattárhoz.

@lxrec és @amon segítettek ebben a következtetésben lenni.

Megjegyzések

  • Tipp: Előfordulhat, hogy a git merge nem rögzít egyesítési elkötelezettséget, ha „gyors előre” képes végrehajtani. Az egyesítési elkötelezettség kikényszerítéséhez hozzáadhatja a --no-ff opciót.
  • Inkább a git-merge-et csinálom a helyi helyett, mint a githuib.com webhelyen, ha én bármi ilyesmire lenne szükségem a github.com-on. Nem szeretném, ha közvetlenül a master ágon tennék, inkább a nem master ágat választanám, amelyet előbb állomás módra lehet állítani, mielőtt elérhetővé tennék a termelés számára.

Válasz

Ahogy Ashhar mondta, technikailag és történelmileg nincs különbség. kis csapat inkább a közvetlen összevonást részesítem előnyben a PR létrehozásának extra lépése helyett. Ha azonban egy funkció felülvizsgálatra / visszajelzésre szorul, vagy ha WIP és több személy dolgozik rajta, akkor nyitok egy PR-t és hozzáadok egy a feladatok listája a PR leírásához.

Ne feledje, hogy a git merge gyors előretekerést használhat, ha nincsenek változtatások a masteren, ezért érdemes használni git merge --no-ff. Nem szoktam.

Összefoglalva tehát csak a PR-t használja s amikor megbeszélésre van szükséged. Ellenkező esetben csak egyesüljön közvetlenül.

Megjegyzések

  • ' is érdemes megemlíteni, hogy a lehívási kérelem megvitatása és visszajelzése automatizált forrásokból származnak, valamint a csapat tagjai. Ha be van állítva egy CI-kiszolgáló, az összeépítési és tesztelési eredményeket adhat, így soha nem egyesít olyan dolgot, amely megszakítja a master alapját.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük