Codumentor logo Codumentor

A munkád elküldése (push)

Amikor az asszisztens módosít egy repót, a commitjai a beszélgetés saját, privát munkaterületén maradnak — semmi nem jut el a git távolidra, amíg magad el nem küldöd. A küldés (push) sosem valami, amit az asszisztens saját magától megtesz: kizárólag a Küldés gombbal indítható, és az ehhez használt hitelesítő adat sosem jut el az asszisztenshez vagy a sandboxához.

Ez a funkció nem biztos, hogy minden beállításban elérhető. Ha nem látod a Küldés gombot a beszélgetés fejlécében, lehet, hogy a rendszergazdád nem engedélyezte.

A küldési párbeszédablak megnyitása

Kattints a Küldés gombra a fejlécben (vagy keskeny képernyőn a fejléc menüjében, ahol Küldés menüpontként jelenik meg). A gombon egy jelvény mutatja, hány commit vár küldésre; egy kis pont jelzi, ha egy repónak nem commitolt módosítása van. A gombra kattintva megnyílik a „Véglegesített munka küldése (push)” párbeszédablak. Ha több repónak is van mit mutatnia, mindegyik saját fület kap a cím alatt, egy kis jellel arról, hol tart: ↑ és egy szám a küldésre kész commitokhoz, figyelmeztető jel, ha beavatkozást igényel (az ág elmozdult, a küldést elutasították, nincs hitelesítő), üres kör, ha csak nem commitolt módosítás van, és pipa, ha elküldted. A fülek között a nyílbillentyűkkel lehet lépni.

Előbb a módosítások commitolása

Ha a beszélgetés munkaterületén nem commitolt módosítás van, a párbeszédablak ezt mutatja meg elsőként, egy Változások áttekintése panellel (a fájl diffje) és egy Commit gombbal. A Commit gombra kattintva egy chatüzenet megy az asszisztensnek, amelyben megkéred, hogy commitoljon — maga a küldés sosem commitol helyetted.

Ha egy munkaterület alvó állapotban van (például egy szerver-újraindítás után), a nem commitolt módosításai nem olvashatók, amíg újra nem aktiválódik. A párbeszédablak ezt jelzi is, ahelyett hogy azt állítaná, nincs mit commitolni; küldj egy üzenetet a beszélgetésben a munkaterület visszaállításához, majd commitolj.

A commitok áttekintése és elküldése

Minden küldésre kész commitokkal rendelkező repónál látod:

Azok a repók, amelyeket valamelyik bővítmény önállóan kezel (például a szervezeti memória tudásbázisa), nem jelennek meg ebben a párbeszédablakban — azokat a bővítmény a saját ütemezése szerint commitolja és küldi, nem innen.

Amikor a távoli ág tovább haladt

Az itteni küldés mindig fast-forward: ebben a folyamatban sehol nincs force push opció. Ha valaki más is küldött a cél ágra, mióta a beszélgetésed elindult, a git elutasítja a küldést ahelyett, hogy felülírná, ami a távolin van, és a párbeszédablak három továbblépési lehetőséget kínál:

LehetőségMit csinálMódosít a távolin?
Küldés új ágraEgy friss, javasolt ágnévre küld, a továbbhaladt ágat érintetlenül hagyjaCsak egy új ágat ad hozzá
A távoli változások beolvasztása, majd küldés a(z) „‹ág›” ágraElőnézetet ad az összefésülésről, majd (megerősítéskor) elküld egy host-oldalon épített merge commitotIgen — merge commitot ad hozzá
A(z) „‹ág›” ág bevétele ebbe a munkamenetbeBehozza a távoli ágat a beszélgetés saját munkaterületére, hogy az asszisztens a jelenlegi kóddal folytassaNem

A három közül mindig ki van választva egy — amelyiket legutóbb választottad, különben az új ág —, és a felső ábra még a futtatás előtt újrarajzolódik: a cél ÚJ ‹ág› lesz, összefésülési jel kerül a vonalra, vagy a nyíl megfordul, és a munkamenetedre mutat.

Az összefésülési lehetőség („reconcile”) szándékosan két lépéses: az Összefésülés előnézete a párbeszédablakon belül egy külön oldalt nyit, amely pontosan megmutatja, mit adna hozzá az összefésülés, ütközés nélkül, mielőtt egy külön Összefésülés és küldés gomb megerősítené. Ha az összefésülés ütközik, nem ajánl fel összefésülő küldést — az oldal felsorolja az ütköző fájlokat, felajánlja a külön ágra küldést, és hivatkozik a munkaterület frissítésére (ez az egyetlen út, amelyhez feloldó tartozik). A Vissza gomb, a cím melletti nyíl vagy az Esc visszavisz a három lehetőséghez.

A munkaterület frissítése egyetlen kattintás, mivel semmit nem módosít a távolin, és egyszerű git-tel visszavonható. Ha ütközik, a párbeszédablak egy oldalt nyit az ütköző fájlokkal, és — csak egy további, kifejezett lépésként — felajánlja, hogy az asszisztens feloldja őket. Az asszisztens feloldása ezután diffként jelenik meg; olvasd át, és a Megtartom — vissza a küldéshez visszavisz a küldéshez, amely magával viszi az összefésülést.

Küldési előzmények

A párbeszédablak fejlécében az óra ikon nyitja meg a Küldési előzmények oldalt: a legutóbbi küldési kísérleteid az összes beszélgetésedből, a legújabbal kezdve, idővonalként. Minden bejegyzés megnevezi a repót, a cél ágat, a rövid SHA-t és az időpontot, és felsorolja a commitokat, amelyeket vitt (sikertelen kísérletnél azokat, amelyeket megpróbált vinni). A pont zöld egy küldésnél, üres zöld kör egy olyan küldésnél, amelynek commitját a fenti összefésülési lépés hozta létre („Összefésülve és elküldve”), és piros egy sikertelennél, amelynek git kimenete egy Git kimenet megjelenítése kattintásra van. A Vissza, a cím melletti nyíl vagy az Esc visszavisz a küldéshez.

Küldési hitelesítők beállítása

A küldési hitelesítők felhasználónként vannak beállítva, a Beállítások → SCM küldés menüben.

A Commit-azonosító az a név és e-mail, amelyet az asszisztens a nevedben készített commitokra ír. Először a profilodból van kitöltve; kattints az Azonosító mentése gombra a megerősítéshez (vagy a módosításhoz).

A Küldési hitelesítők egy repót (vagy egy globot, például team/*) kötnek egy csak host felhasználói titokhoz, és korlátozzák, mely ágakra küldhet — semmi ebből sosem jut el az asszisztenshez. Egy hozzáadásához:

  1. A Git szolgáltatódnál (Gitea/GitHub/GitLab) hozz létre egy hozzáférési tokent, amely írási joggal rendelkezik a repóhoz.
  2. Add hozzá a Beállítások → Felhasználói titkok menüben új titokként, „Csak host” bejelölve.
  3. Térj vissza a Beállítások → SCM küldés menübe, kattints a Hitelesítő hozzáadása gombra, válaszd ki a repót és ezt a titkot, majd mentsd el.

A tokenes hitelesítők HTTPS-en küldenek; a Codumentor automatikusan átalakítja az ssh:// távolit a HTTPS alakjára, így a Küldési URL mezőt általában üresen hagyhatod — csak felülíráshoz add meg.

SSH kulcs használata token helyett

Ha hitelesítési módként az SSH kulcs-ot választod, a titkot privát kulcsként olvassa be (a teljes PEM blokként) token helyett. Két dolog ennél a módnál más:

Az Engedélyezett ágak glob (pl. codumentor/, feature/) korlátozza, mely ágakra küldhet egy hitelesítő; hagyd üresen, ha bármely ágra engedélyezni akarod.

A küldés szándékosan kimarad az asszisztens saját kezéből: a git push a Jogosultságok szerint mindig hálózati hozzáférésnek számít, így ez sosem olyasmi, amit egy, az asszisztens által futtatott parancssori parancs megtehet — csak ez a párbeszédablak.