[git] Místní a vzdálený repozitář

Všeobecné návody jak při vývoji postupovat...
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
Avatar
Gregory
Vedoucí vývoje
Příspěvky: 73
Bydliště: near Pilsen

[git] Místní a vzdálený repozitář

Příspěvek od Gregory » 29. listopad 2017 (19:06:16)

Předchozí návody (Quickstart a Zásady commitování) předpokládaly, že existuje vzdálený repozitář a stahujete ho k sobě, abyste mohli provádět úpravy, které zase nahrajete do vzdáleného repozitáře. Princip gitu ale nikoho nenutí mít žádný počet vzdálených repozitářů - technicky vzato je možné nemít žádný a udržovat repozitář jen lokálně, nebo je možno mít jich několik (například z několika změny bereme, a do jednoho, našeho, změny nahráváme, apod.). Tento topic se bude zabývat vytvářením lokálního repozitáře a pozdějším přidáním vzdáleného, pokud to bude nutné.

Poznámka: místo "místní" lze použít označení "lokální", vzdálený repozitář se pak obecně v gitu označuje jako "remote"

Zakládání
Otevřete git bash a příkazy "cd" se navigujte do míst, kde chcete mít nový repozitář, případně pokud jste ve Windows zvolili integraci do průzkumníka, lze na adresář kliknout pravým tlačítkem myši a vybrat "Git bash here". Narozdíl od klonování repozitáře musíte již být přímo v kořenové složce vašeho budoucího repozitáře, tedy pokud chcete vytvářet repozitář pro svůj nový addon, rovnou si vytvořte složku "my-fancy-addon" a navigujte se do ní.

Pak lze repozitář inicializovat jedním příkazem:

Kód: Vybrat vše

git init
Toto vytvoří základ pro repozitář, ve kterém zatím není v podstatě nic. Dále bývá dobrou praktikou vytvořit prázdný tzv. root commit. To je takový commit, který je první v celé historii repozitáře, a měl by být prázdný (bez souborů a beze změn). Hned po inicializaci proto proveďte příkaz:

Kód: Vybrat vše

git commit --allow-empty -m "Initial empty commit"
Ten takový root commit vytvoří.

Nyní máte připravený lokální repozitář a lze se řídit postupy z jiných témat pro přidávání souborů a jejich commitování.

Přidávání vzdálených repozitářů
Pokud potřebujete do již existujícího lokálního repozitáře přidat odkaz na vzdálený, abyste mohli nahrávat změny, je nutné si nejdříve najít URL repozitáře (jak je popsáno v Quickstart) a provést tento příkaz:

Kód: Vybrat vše

git remote add origin <vaše URL>
Na stejném příkladu jako v quickstart guide by to bylo tedy:

Kód: Vybrat vše

git remote add origin https://github.com/iCeOnlineWoW/G-Core.git
Slovo "origin" je v tomto případě název vzdáleného repozitáře. Ten lze mít pochopitelně jiný, ale výchozím názvem pro hlavní takový repozitář je právě "origin".

V případě, že jste se jakýmkoliv způsobem spletli lze vzdálený repozitář odebrat příkazem:

Kód: Vybrat vše

git remote rm origin
Popř. s jiným jménem vzdáleného repozitáře.

Pro možnost pohodlně pushovat/pullovat bez specifikace odkud, lze zadat příkaz:

Kód: Vybrat vše

git branch --set-upstream-to=origin/master master
To nastaví ve vašem lokálním repozitáři "propojení" mezi vaší master větví a vzdálenou master větví, aby při zadávání "git pull" / "git push" nebylo potřeba specifikovat, že chceme stahovat z/nahrávat do určité větve určitého vzdáleného repozitáře

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable