Git: Repository
Z MiS
(Rozdíly mezi verzemi)
m (Podrobnější komentář ke git pull před commitem vypuštěn - měl bych pracovat na vlastní větvi.) |
(Opraveno na přihlašování pomocí SSH.) |
||
Řádka 4: | Řádka 4: | ||
* Git je jedním z nejoblíbenějších verzovacích systémů současnosti. | * 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]]. | * Více o Gitu se dozvíte na stránce [[Git]]. | ||
− | * Zde se budeme zabývat prací se vzdáleným repozitářem. | + | * Zde se budeme zabývat prací se vzdáleným repozitářem (zejména na serveru [https://www.github.com Github.com]). |
Řádka 11: | Řádka 11: | ||
* Váš Git umí stáhnout z GitHubu aktuální verzi a posléze nahrát zpět provedené změny. | * 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. | * 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 <code>.ssh</code>. | ||
+ | ** Ve Windows to bude: <code>C:\Users\''username''\.ssh</code> | ||
+ | ** V GNU/Linuxu to bude: <code>/home/''username''/.ssh</code> | ||
+ | # 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 <code>.ssh/id_rsa.pub</code> 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. | ||
Řádka 34: | Řádka 52: | ||
cd c:\users\student\Documents\develop | cd c:\users\student\Documents\develop | ||
* Vytvořte lokální kopii vzdáleného repozitáře: | * Vytvořte lokální kopii vzdáleného repozitáře: | ||
− | git clone '' | + | git clone ''git@github.com:''username''/''repository-name'' |
* Vznikne tak složka: | * Vznikne tak složka: | ||
cd c:\users\student\Dokumenty\develop\repository-name | cd c:\users\student\Dokumenty\develop\repository-name | ||
Řádka 45: | Řádka 63: | ||
git branch | git branch | ||
* Nastavte si výchozí repozitář pro nahrávání tak, abyste mohli posléze psát pouze <code>git push</code> a nemuseli uvádět cílový repozitář: | * Nastavte si výchozí repozitář pro nahrávání tak, abyste mohli posléze psát pouze <code>git push</code> a nemuseli uvádět cílový repozitář: | ||
− | git push --set-upstream '' | + | git push --set-upstream ''git@github.com:''username''/''repository-name'' main |
--> | --> | ||
Řádka 78: | Řádka 96: | ||
* Upravenou verzi nahrajete do repozitáře příkazem: | * Upravenou verzi nahrajete do repozitáře příkazem: | ||
git push | 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: | ||
+ | # 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 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 | ||
== Související stránky == | == Související stránky == | ||
* [[Git]], [[Git: Versioning]], [[Git: Branch]] | * [[Git]], [[Git: Versioning]], [[Git: Branch]] |
Verze z 9. 3. 2021, 11:59
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:
- 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 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)