Git: Repository
Z MiS
Obsah |
Git
- Git je jedním z nejoblíbenějších verzovacích systémů současnosti.
- Více o Gitu se dozvíte na stránce Git.
- Zde se budeme zabývat prací se vzdáleným repozitářem (zejména na serveru Github.com).
GitHub
- GitHub.com je veřejný server, kde si můžete ukládat aktuální verze svého projektu.
- Váš Git umí stáhnout z GitHubu aktuální verzi a posléze nahrát zpět provedené změny.
- Obdobných serverů existuje více, GitHub patří k nejznámnějším.
Nastavení SSH klíče
- Doporučeným způsobem ověřování identity je dnes SSH klíč.
- K vygenerování klíče použijte Git Bash, který se nainstaloval při instalaci Gitu na váš počítač.
- Generování klíče
- Po spuštění Git Bash zadejte:
ssh-keygen -t rsa
- Pokud zadáte heslo k použití soukromého klíče, pak budete vždy při připojení vyzvání k zadání hesla.
- Pro začátečníky doporučujeme heslo nezadávat, ale klíč důsledně hlídat.
- Nahrátí klíče na server
- Klíče se standardně vytvoří ve vaší domovské složce v podsložce
.ssh
.- Ve Windows to bude:
C:\Users\username\.ssh
- V GNU/Linuxu to bude:
/home/username/.ssh
- Ve Windows to bude:
- Na GitHubu zvolte ve svém účtu: Settings → SSH and GPG keys
- Pojmenujte klíč (například názvem počítače) a vložte obsah souboru
.ssh/id_rsa.pub
do textového pole. - Potvrďte Add SSH key.
- Nyní se můžete k repozitáři připojit z tohoto počítače pomocí SSH klíče.
Repozitář
- Pojmem repozitář označujeme úložiště na serveru, kde je váš projekt uložen.
- Repozitáře můžou být
- veřejné — kdokoli může vidět jejich obsah, měnit ho ale mohou jen přiřazení vývojáři.
- privátní — tyto repozitáře vidí jen jejich vlastní a přiřazení vývojáři, veřejnost nikoli.
Vytvoření repozitáře
- Vytvořte si účet na serveru GitHub.com.
- Založte repozitář v uživatelském prostředí webu GitHub.com.
Vytvoření lokální kopie repozitáře
- Připravte si složku, ve které vytvoříte lokální kopii repozitáře.
- Spusťte příkazový řádek (například Win+R →
cmd
). - Přejděte do složky, kde chcete vytvořit lokální kopii repozitáře. Například pro složku
c:\users\student\Documents\develop
napište:
c: cd c:\users\student\Documents\develop
- Vytvořte lokální kopii vzdáleného repozitáře:
git clone git@github.com:username/repository-name
- Vznikne tak složka:
cd c:\users\student\Dokumenty\develop\repository-name
- Vytvoření lokálního repozitáře bez vazby na vzdálený server
- Pokud bychom pro vývoj nechtěli používat vzdálený server, můžeme si zařídit lokální repozitář příkazem:
git init
- Potom bychom nepotřebovali
git clone
. - Repozitář by šlo později propojit se vzdáleným serverem pomocí:
git remote add origin https://adresa-serveru/repozitar.git git push -u origin main
- Pokud ale chcete pracovat se vzdáleným serverem, je jednodušší začít vytvořením repozitáře na serveru a poté
git clone
.
Úpravy kódu
- Přejděte do nově vytvořené složky:
cd c:\users\student\Dokumenty\develop\repository-name
- Pracujete stejně, jako s lokálním repozitářem — viz Git: Versioning.
- Nyní můžete do složky nahrát požadované soubory a libovolně je upravit. Změny přidáte do gitu pomocí:
git add . git commit
Pokud pracuje na projektu více vývojářů, je vhodné pro každou změnu vytvořit vlastní větev viz Git: Branch tak, abychom si neměnili kód pod rukama.
Odeslání upravené verze do repozitáře
- Upravenou verzi nahrajete do repozitáře příkazem:
git push
Změna způsobu přihlašování k repozitáři z HTTPS na SSH
Pokud máte repozitář již stažen a byl klonován pomocí starší metody ověřování HTTPS, můžete ho na metodu SSH přepnout následujícím postupem:
- Spusťte příkazový řádek a přesuňte se do adresáře (složky) repozitáře:
Alt-R → cmd cd c:\...\mujrepozitar
- Zobrazte adresu repozitáře:
git remote -v
- Zobrazí se něco jako:
> origin https://github.com/USERNAME/REPOSITORY.git (fetch) > origin https://github.com/USERNAME/REPOSITORY.git (push)
- Změňte adresu repozitáře
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
- Zkontrolujte:
git remote -v > origin git@github.com:USERNAME/REPOSITORY.git (fetch) > origin git@github.com:USERNAME/REPOSITORY.git (push)
Viz také: https://docs.github.com/en/github/using-git/changing-a-remotes-url