Jak jsem synchronizoval cursor stories s GitHubem
Měl jsem 38 příběhů spolupráce s AI uložených lokálně ve složce `3_Context/Stories`, ale nebyly synchronizované s GitHub repozitářem. Repozitář už existoval s README a jedním souhrnným souborem, ale chyběly všechny jednotlivé příběhy.
Potřeboval jsem to spojit. Všechno. A tak jsem se pustil do synchronizace.
Problém, který jsem řešil
Lokální složka nebyla git repozitář. GitHub repozitář už existoval s README a jedním souhrnným souborem, ale chyběly všechny jednotlivé příběhy spolupráce, které byly vytvořené během posledních měsíců.
Plus `.gitignore` byl příliš restriktivní a ignoroval všechny soubory kromě dvou specifických. To zabránilo přidání ostatních Markdown souborů.
Potřeboval jsem spojit lokální složku s existujícím GitHub repozitářem a zabezpečit, aby všechny dokumentační soubory byly verzované a dostupné online.
Jak jsem ho vyřešil
Rozhodl jsem se postupně: nejprve inicializovat git repozitář, potom přidat remote, synchronizovat existující soubory a následně přidat všechny lokální příběhy.
Nejprve jsem inicializoval git repozitář v lokální složce. Potom jsem přidal remote repozitář a synchronizoval existující soubory pomocí `git pull --allow-unrelated-histories`.
Zjistil jsem, že `.gitignore` ignoroval všechny soubory kromě dvou specifických. Aktualizoval jsem ho na `!*.md` místo specifických výjimek, což umožnilo automaticky zahrnout všechny Markdown soubory.
Potom jsem přidal všech 38 příběhů + aktualizovaný `.gitignore` a commitnul a pushnul všechny změny na GitHub.
Jak to funguje v praxi
Teď jsou všechny cursor stories synchronizované s GitHub repozitářem. Repozitář obsahuje kompletní kolekci dokumentace spolupráce s AI, což umožňuje verzování, sdílení a snadný přístup k historii všech projektů.
Aktualizovaný `.gitignore` zabezpečuje, že všechny budoucí Markdown soubory budou automaticky zahrnuté do verzování. Flexibilnější pravidla (`!*.md`) místo specifických výjimek usnadňují budoucí údržbu.
Výsledek: 39 souborů commitnutých (38 nových příběhů + 1 aktualizovaný `.gitignore`), 10 792 řádků kódu přidaných, 100 % lokálních příběhů synchronizovaných s GitHubem.
Co jsem se naučil
Důležitost správného `.gitignore`. Původní `.gitignore` byl příliš restriktivní a ignoroval všechno kromě dvou specifických souborů. Změna na `!*.md` umožnila automaticky zahrnout všechny Markdown soubory, což je flexibilnější řešení pro budoucnost.
Postupné ověřování. Kontrola počtu tracked souborů vs. skutečných souborů ve složce pomohla rychle identifikovat problém. Git status ukázal "clean", ale skutečně byly jen 3 soubory tracked ze 40+ existujících.
Synchronizace existujícího repozitáře. Když už existuje remote repozitář s obsahem, je důležité nejprve synchronizovat existující soubory pomocí `git pull --allow-unrelated-histories` před přidáním nových souborů, aby se zachovala historie a struktura.
Proč to stojí za to
Když máš lokální soubory, které chceš synchronizovat s GitHubem, nemusíš to dělat manuálně. Můžeš si postavit git repozitář a synchronizovat všechno automaticky.
Git repozitář je teď součástí mého workflow. Šetří mi čas, protože všechny cursor stories jsou verzované a dostupné online. A zároveň mám kontrolu nad tím, jak jsou soubory organizované, protože všechno je v git repozitáři.
Pokud máš podobný problém – lokální soubory, které chceš synchronizovat s GitHubem – zkus to. Možná zjistíš, že je to jednodušší, než sis myslel.
Časté otázky
Co je `--allow-unrelated-histories` a kdy ho použít?
Když máš lokální složku, která nebyla git repozitář, a chceš ji spojit s existujícím GitHub repozitářem, git ti normálně nedovolí pull – historie jsou nesouvisející. Přepínač `--allow-unrelated-histories` tohle obejde a umožní spojit dvě nezávislé historie do jedné.
Proč `.gitignore` s `!*.md` místo specifických výjimek?
Specifické výjimky (`!README.md`, `!summary.md`) znamenají, že každý nový soubor musíš ručně přidat. S `!*.md` se všechny Markdown soubory automaticky zahrnou do verzování. Méně údržby, méně zapomenutých souborů.
Jak zjistím, že `.gitignore` ignoruje soubory, které chci verzovat?
Porovnej počet tracked souborů (`git ls-files | wc -l`) s počtem skutečných souborů ve složce. Když git status ukazuje "clean", ale máš 40+ souborů a tracked jsou jen 3, něco je špatně. V mém případě to byl příliš restriktivní `.gitignore`.
Jaký je správný postup pro synchronizaci lokální složky s existujícím GitHub repozitářem?
Postupně: 1) `git init` v lokální složce, 2) `git remote add origin [URL]`, 3) `git pull origin main --allow-unrelated-histories`, 4) oprav `.gitignore` pokud je potřeba, 5) `git add .`, 6) `git commit`, 7) `git push`. Důležité je nejprve synchronizovat existující soubory, pak přidávat nové.
Kolik času synchronizace 38 souborů zabere?
Samotná synchronizace trvá minuty. Většinu času zabere identifikace problému – v mém případě zjištění, že `.gitignore` ignoroval všechno kromě dvou souborů. Jakmile víš, co je špatně, oprava je rychlá. Výsledek: 39 souborů, 10 792 řádků, 100 % synchronizováno.
Tom