Databáze projektů: Git. Commit. Pull. Push a další

Automaticky přeloženo z Deepl

V předchozím příspěvku na blogu jsme vám představili Git (systém pro správu verzí) a Github (cloudová hostingová služba) a způsoby, jak můžete sdílet svůj kód 4D s ostatními vývojáři. V tomto blogovém příspěvku půjdeme o něco dál a prozkoumáme některé scénáře, se kterými se vývojář může setkat, například klonování vzdáleného úložiště, ignorování již odevzdaných souborů a řešení konfliktů při slučování.

Předpoklady

Než budeme pokračovat dále, předpokládáme, že víte, jak vytvořit databázi projektu nebo převést binární databázi na projekt. Nainstalovaný systém Git na vašem počítači a účet na Githubu jsou povinné. Pokud je ještě nemáte, přečtěte si tento příspěvek na blogu, kde se dozvíte, jak postupovat.

Klonování vzdáleného úložiště

Je čas pokračovat v práci na naší aplikaci. Z nějakého důvodu však nemáte na svém počítači projekt, na kterém jsme pracovali minule. Co dělat?

Protože jsme vytvořili repozitář na GitHubu(předchozí příspěvek na blogu), existuje jako vzdálený repozitář. Nyní musíme vytvořit místní kopii na našem počítači a synchronizovat obě umístění. Jak postupovat?

  1. Připojte se ke svému účtu Github,
  2. Přejděte na hlavní stránku úložiště,
  3. Klikněte na tlačítko„Klonovat nebo stáhnout“ a poté klikněte na ikonu schránky (jak je znázorněno na obrázku níže):
  4. Otevřete terminál a označte umístění, kam chcete adresář naklonovat.
  5. Zadejte příkaz git clone a vložte adresu URL, kterou jste zkopírovali v kroku 3.

blank

Gratulujeme! Vytvořili jste místní kopii ve svém počítači.

gitignore

Nechci, aby git sledoval konkrétní soubor nebo složku.

Někdy máme v projektu soubory nebo adresáře, které nechceme sledovat. V takovém případě se hodí soubor .gitignore. Jak název napovídá, dává systému Git pokyn, které soubory, adresáře nebo vzory má v úložišti ignorovat.

V našem případě chceme, aby systém Git ignoroval složku Data (která obsahuje deník, předvolby, .4dd a složku DerivedData ).

  • Vytvoření souboru .gitignore

blank

  • Konfigurace ignorovaných souborů/složek

blank

Soubor.gitignore používá k porovnávání názvů souborů globbingové vzory. Vzory můžete sestavit pomocí různých symbolů. Chceme-li například ignorovat složku, připojíme na konec jejího názvu lomítko. Další informace o vzorech .gitignore najdete v tomto článku.

Ignorování souborů, které již byly odevzdány do úložiště

Mějte na paměti, že při vytváření nového úložiště byste měli vytvořit také soubor .gitignore pro všechny vzory souborů, které chcete ignorovat. Někdy se však stane, že proklouznou soubory, které chcete později ignorovat.

Nepropadejte panice! Stačí několik jednoduchých kroků a můžete úložiště vyčistit a zajistit, aby byly tyto položky ignorovány:

  1. Soubory, které chcete odstranit, ale ponechte je na místě: git rm -r –cached
  2. Zkontrolujte celý pracovní adresář a vyhledejte všechny nové, odstraněné nebo změněné soubory a přidejte je do indexu: git add
  3. Odeslání souborů z oblasti staging do místního úložiště: git commit -m „Clean up ignored files“.
  4. Odeslání změn do vzdáleného úložiště: git push

Voilà! Ve vzdáleném úložišti si můžete ověřit, že tam soubory nejsou!

Důležité upozornění: Ignorované soubory zůstávají v historii úložiště. Proto byste při vytváření nových úložišť měli vytvořit také soubory .gitignore, ve kterých uvedete všechny soubory, složky nebo vzory, které chcete ignorovat. V opačném případě, pokud nechcete, aby určité soubory zůstaly v historii, budete muset repozitář z Githubu odstranit a odeslat jej znovu.

Jak řešit konflikty při slučování

Především ZŮSTAŇTE V KLIDU!

Když v rámci jednoho systému správy verzí pracuje více vývojářů, stává se zvládání případných konfliktů každodenním úkolem. K dispozici je několik možností. Konflikt lze snadno vyřešit pomocí editoru 4D, ale protože všechny soubory jsou nyní textové, můžete k ručnímu řešení konfliktů použít také textový editor. Kromě toho je k dispozici mnoho nástrojů pro slučování, které lze integrovat do systému GIT. V níže uvedeném příkladu používáme k řešení konfliktů editor 4D.

Podívejme se na konflikt pomocí metody 4D. K tomu je nutné simulovat sekundárního uživatele / místní repozitář git duplikováním složky databáze a ujistit se, že obsahuje alespoň jednu metodu projektu. Nyní jsou k dispozici dvě databázové složky: my4DApplication a my4DApplication2. Dále otevřete obě aplikace.

    1. Otevřete metodu projektu v první aplikaci a přidejte nějaký obsah (například komentář).blank
    2. Pokud spustíte příkaz git status, zjistí se změny v metodě. Odevzdejte a odešlete nové změny.
    3. Scénář: Někdo jiný upravuje stejnou metodu, ve stejnou dobu . Simulujme to tak, že otevřeme stejnou metodu v druhé aplikaci a upravíme ji jiným komentářem.blank
    4. Odevzdejte a odešlete nové změny. Jak vidíte, push je odmítnut a místo toho je navrženo pull:blank
    5. Spuštění navrženého git pull nepomáhá:

blank

Co teď?

Otevřete metodu s konfliktem. Řádek s hlavičkou označuje místní změny a červený řádek číslo revize provedené druhým uživatelem.

blank

Vyřešení konfliktu je snadné, stačí vybrat správné části kódu a změny odeslat. V tomto případě ponechávám obě zprávy ALERT s různými komentáři:

blank

Jakmile je toto provedeno, může druhý uživatel spustit příkaz git pull a získat nové změny. Oba uživatelé nyní mají v metodě stejný obsah.

blank

Abychom se vyhnuli konfliktům na prvním místě

Neexistuje žádný zaručený způsob, jak se konfliktům vždy vyhnout, ale spuštění příkazu git fetch vám může ušetřit spoustu starostí se slučováním. Zkontroluje, zda jsou ve vzdáleném úložišti nějaké nové revize. Pokud tak před pokusem o odeslání neučiníte, způsobí to chybu [Rejected].

Závěr

V tomto příspěvku jsme probrali různé scénáře, se kterými se vývojář při práci se systémem Git může setkat. V příštím příspěvku se odpoutáme od příkazového řádku a ukážeme si, jak při práci se systémem Git používat klienta s grafickým uživatelským rozhraním.

Avatar
• Produktový marketingový manažer • Intissar nastoupila do 4D v roce 2017 jako produktový marketingový manažer. Úzce spolupracuje s týmy produktovými, marketingovými, inženýrskými a technické podpory, aby aby sdělila různému publiku „proč“, „jak“ a „co“ o nových a aktualizovaných funkcích. Tato úzká spolupráce jí umožňuje formulovat zprávy a psát hloubkový obsah a příklady kódu pro 4D blog a web. Po absolvování inženýrského titulu v oboru informatiky na univerzitě VINCI pracovala Intissar v několika startupech jako softwarový inženýr. Mezi její praktické zkušenosti patří specifikace softwaru, návrh a vývoj, školení a podpora uživatelů a správa týmu.