====== GIT ======
Na správu kódu v projektech používám GIT. Při používání jsme se setkal s následujícími potřebami:
===== Založení nového repozitáře =====
Nejprve vstoupím do složky, ze které chci vytvořit repozitář a její obsah verzovat a zálohovat. Pak spustím inicializaci, přidám všechny soubory a vytvořím první revizi.
git init
git submodule add https://github.com/mvillion/iiyama_x4071.git
git add *
git commit -a -m "Create repository."
====== Ukládání přihlašovacích údajů ======
Git umožňuje různé způsoby ukládání přihlašovacích údajů pro usnadnění přístupu k repozitářům. Níže jsou popsány dva hlavní způsoby:
===== Použití příkazu `git config credential.helper store` =====
Tento příkaz konfiguruje Git, aby uložil přihlašovací údaje v jednoduchém textovém souboru na lokálním disku. Soubor se standardně nachází v domovském adresáři uživatele, například `~/.git-credentials`.
git config --global credential.helper store
Po zadání příkazu Git při příštím připojení k repozitáři požádá o přihlašovací údaje (uživatelské jméno a heslo) a tyto údaje uloží. Při dalších přístupech Git přihlašovací údaje automaticky použije.
**Poznámka:**
Tento způsob není příliš bezpečný, protože heslo je uloženo v prostém textu. Doporučuje se jej používat pouze v kontrolovaných prostředích, kde nehrozí riziko zneužití.
===== Použití souboru `.netrc` =====
Další způsob je konfigurace přihlašovacích údajů přes soubor `.netrc`, který se běžně používá pro různé nástroje využívající autentizaci.
Formát souboru `.netrc`:
machine
login
password
Příklad:
machine github.com
login username
password password123
Tento soubor uložte do svého domovského adresáře (`~/.netrc`) a nastavte správná oprávnění:
chmod 600 ~/.netrc
Git automaticky použije přihlašovací údaje uložené v tomto souboru při komunikaci s odpovídajícími servery.
**Výhody a nevýhody:**
* Výhoda: Lze spravovat přihlašovací údaje pro více serverů na jednom místě.
* Nevýhoda: Stejně jako u předchozí metody může být bezpečnostním rizikem, pokud soubor není správně zabezpečen.
----
Oba tyto způsoby mohou usnadnit práci s Gitem, ale měly by být používány s ohledem na bezpečnostní aspekty daného prostředí.
===== Vložení existujícího repozitáře do současného projektu =====
git submodule add https://github.com/mvillion/iiyama_x4071.git
git add *
git commit -a -m "Updated repository."
===== Uploadnutí repozitáře skrz SSH na jiný server =====
Nejprve vytvořím na serveru prostor, kam bude můj repozitář zálohován. Bez tohoto kroku to nepůjde.
git init --bare Langino.git
Poté na svém počítači (ne na serveru) nastavím, kam se má git repozitář skrz SSH zálohovat.
git remote add slovni-nazev-serveru ssh://uzivatel@192.168.1.1:22/mnt/projects/Langino.git
A pro synchornizaci se serverem už jenom stačí zadávat tento příkaz. Cesta k serveru byla už nastavena v předchozím příkaze.
git push slovni-nazev-serveru master
Pro vypsání všech vzdálených cest.
git remote -v
git remote
Pro změnu již uložené SSH url:
git remote set-url slovni-nazev-serveru ssh://uzivatel@192.168.1.1:22/mnt/projects/Langino.git
===== Vracení změn =====
Toto vrátí soubory do posledního commitnutého stavu repozitáře. Všechny nové modifikace, které byly provedeny a nebyly commitnuty budou ztraceny. Ovšem zůstanou soubory a složky, které byly oproti původnímu commitnutí přidány.
git reset --hard HEAD
Smazání nově přidaných souborů a složek, které jsou **untracked** - tedy nejsou commitnuté udělá tento příkaz:
git clean -f -d
zdroj:
* https://stackoverflow.com/questions/30875205/restore-a-deleted-folder-in-a-git-repo