Írta: tom1964h
Távoli repository
A Git a local repó kezelése mellett a távoli (központi) repository eléréséhez is kínál többféle (pl. parancssori) eszközöket. Az mindegy, hogy a távoli repó egy nagy szolgáltató (nevezhetjük őket hub-nak is) vagy a cég saját, privát központi repository-ja. A Git local repó szempontjából mindegy, hogy a GitHub vagy GitLab szolgáltatónál van-e távoli repository.
Fontos látni azt is, hogy a Git program nem egyenlő a GitHub-bal, a Bitbucket-tel és a többi rendszerrel. A Git egy technológia, aminek a megvalósítása a GitHub, a GitLab, stb. A Git lehetővé teszi azt, hogy helyileg, központi repó nélkül is használjunk verziókezelést.
A Git helyi használata az egyéni fejlesztéseket kiszolgálja. Nem kell távoli szervert használni. De azzal, hogy a local repó-t össze tudjuk kötni egy szerver oldali repository-val, nagy előrelépés. Az összekapcsolással a távoli repót nevezzük ki a fő repónak, mindenki más lemásolhatja a repónkat a saját gépére: mert másoknak is jogot adhatunk, hogy lemásolja magának a repónkat és módosításokat végezhessen rajta, majd feltöltse a mi repónkba az új kódokat.
Hierarchia alakul így ki a repository-k között, a távoli lesz a fő repó.
teammunka Git segítségével:
néhány parancs a helyi repó használatához és a távoli repóval folytatott adatforgalomhoz
Git eszközök távoli elérésre
A GitHub-on egy nagyon jó összeállítást olvashatunk a témában Use Git to manage your GitHub repositories from your computer címmel. Itt néhány fontosabb parancsot érintünk csak távirati stílusban.
CONFIGgit config --global ...
A helyi repository-t csak akkor lehet összekötni bármilyen szerver repository-val, ha konfiguráljuk a Git globális paramétereit: a felhasználó nevét és E-mail címét. Azonosítani kell magunkat mielőtt a szerver repóval kapcsolatba lépünk.
git config --global user.email "...."
így rögzíthetjük be az E-mail-címetgit config --global user.email
lekérdezhetjük a már berögzített E-mail-címetgit config --global user.name "...."
így tárolhatjuk le felhasználónevet - ezzel a szerzői névvel lesznek elmentve a commit-jaimgit config --global user.name
lekérdezhetjük a már berögzített felhasználónevet
REMOTEgit remote add origin ...url...
- alkalmas a helyi és a távoli repó összekötésére: hozzáadjuk a local repóhoz a távoli elérést, akárcsak pl. az adatbázis-elérést egy programhoz JDBC-connection esetében
- a hozzákötést egy URL beírásával érjük el
- az origin elnevezés ebben a sorban azt jelenti, hogy az origin után szereplő távoli repót ezentúl a hosszú URL-cím helyett csak egy szóval, az origin-nel fogjuk nevezni (egy alias-t állítunk be a gépünkön)
- a továbbiakban elég a távoli repóra origin-ként hivatkozni
- a távoli repó kiterjesztése itt is .git akárcsak a local repó esetében
CLONEgit clone
A git clone leklónozza, lemásolja a központi repót egy helyi mappába, létrehozza a helyi repót és össze is köti az eredetivel. Két lépést csinál meg egyszerre: git init + git remote (létrehoz és hozzákapcsol): létrehoz egy helyi repó-t és abba létrehoz egy almappát, amit lehúzott a központi repóból.git clone ...url...
parancs egy konkrét repót képes leklónozni
PUSHgit push -u origin master
- felküldjük az összes commitunkat az origin néven hívott távoli repó master branch-ébe
- a távoli repót ehhez előbb be kell kötni
- a -u kapcsoló azt állítja be, hogy a cél ezentúl alapból origin alias-névvel nevezett repó master branch-e lesz
- a cél a master branch lesz: a repó-n belül a fő-ág megnevezése alapból master branch
- a master branch mellett számos más branch, azaz fejlesztési vonal létezhet egy repository-n belül
PULLgit pull ...url... ...branch....
A git pull letölti a commit-okat és merge-li az aktuális branch-ba. Használatát magyarul lásd még pl. itt és itt.
GitHub signup
regisztráció a GitHub oldalon: SignUp
forrás github.com
A GitHub regisztrációs menüje megváltozott, az eddig megszokott (és más oldalakhoz hasonló) regisztrációs űrlap helyett egy stilizált terminálon kérdezi meg a program a mailcímet, majd ha ez a site-nak új, felajánl egy erős jelszót - csak ezután enged tovább dolgozni. Ajánlott valamilyen konszolidált felhasználónevet választani, amit vállalhat az ember a főnökei, vagy egy nagyobb meeting résztvevői, a kollégák és az online fórumok előtt is, nem valami idétlen kifejezés.
Git távoli kapcsolódási módok
A távoli repóval folytatott munka megváltoztat pár dolgot az eddigi egygépes munkánkkal szemben:
- a rákapcsolódás után a távoli repó lesz a fő tároló, innen mások is letölthetnek kódokat
- azonosítás szükséges: milyen git felhasználói fiókkal csatlakozok a távoli repóhoz
- fontos ismerni a távoli repó URL-jét
- fontos ismerni a távoli repóban létező branch-ek nevét
1-es kapcsolódási mód: amikor előbb volt a helyi repó: a helyi repóhoz kötöm a távolit (remote), majd felküldöm a tartalmat (push); ehhez ezt kell tennem:
git remote add origin ....
létrehozok egy távoli üres repót majd a helyi repóhoz hozzáadok “origin” alias-névvel egy távoli repót, aminek az URL-jét beillesztem a parancs végéregit push origin master
a helyi repóm tartalmát (az összes commitomat) felküldöm a központi repóba, amelyben létesül egy master nevű branch
2-es kapcsolódási mód: amikor létezik a helyi repó, de létezik a nem üres távoli repó is:
git pull origin master
lehúznám a létező repót, de az már tartalmaz commitokat, amire a Git hibát jelez - ez probléma: ha mindkét repó volt már használvagit pull origin master --allow-unrelated-histories
engedélyezi a nem ismert változtatások átvezetésétgit push origin master
ezután már fel tudom küldeni a saját kis módosításaimat
3-as kapcsolódási mód: amikor a távoli repó volt előbb, akkor le kell húznunk a távoli repót a gépünkre, majd létre kell hozni egy mappát (working directory) és el kell inditani a helyi repót is, utoljárs ezt össze kell kötni a távoli repóval. Ehhez vagy a git init + git remote + git pull (létrehozás és lehúzás) parancs-kombinációt használjuk, vagy: git clone ... ...
Egy lokális repót több távoli repóhoz is hozzá tudok csatlakoztatni - de ezt a módot nagyon ritkán használják.
GitHub etikett
- előbb mindig pull, aztán push
- masterben soha nem fejlesztünk, mindig létrehozunk egy önálló branch-et
- ha változás van, a git diff head megmutatja mi változott
GitHub remote repository létrehozása
A GitHub oldal főmenüjében a plusz gomb alatt kezdeményezhetjük az új repository létrehozását (itt bővebb angol nyelvű segítség).
New Repository a főmenüben :: forrás github.com
Feljön egy menü, amelyben megadhatjuk az induló paramétereket:
- adjuk meg a repó nevét (előtte a tulajdonos neve már ki van töltve)
- írjunk be egy rövid leírást (Description)
- a repónk eleve Public, azaz nyilvános (lehet Private, azaz zárt repót is létrehozni)
- javasolt, hogy ikszeljük be az Add a README file opciót (bár most nem készítünk ilyet, de általában fontos, hogy pár mondatban bővebb leírást adjunk a repó-hoz
- alul a Create repository nagy zöld gomb felett van egy utalás arra, hogy mi legyen a default branch-name (alapból main-re van állítva); ha mást szeretnénk beállítani, a setting linkkel átjuthatunk egy beállító képernyőre:
forrás github.com
GitHub remote repository törlése
forrás github.com
A repository a főmenüjében a fogaskerék ikon alatt találhatjuk a SETTINGS menüt. Ezt választva lejjebb tudunk belépni a “Danger zona”-ba, ahol a tulajdonlás-átadási és a törlési lehetőségeket találhatjuk.
forrás github.com
A törlés nem egyszerű, a szándékot külön kis ablakban még egyszer meg kell erősíteni, sőt, a repó elnevezését még egyszer be kell írni.
forrás draw.io