====== 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