Autor | Zpráva | ||
---|---|---|---|
Ivorius Profil |
#1 · Zasláno: 6. 2. 2013, 08:40:14
Potřebuji přenést commity z eshopu A do eshopu B, který ovšem nemá zaveden git a byl od dob fyzické kopie upravován. Oba vychází sice ze stejného fyzického základu, ale logicky nemají žádný společný commit. Chtělo by to asi nejprve nějaké fyzické porovnání souborů. 1) Neví někdo jak na to?
2) Jaké je worklfow pro situaci kdy mám nějakou master verzi aplikace A a budu klonovat aplikace B,C,D.... ve kterých následně budu dělat drobné změny. Jakmile udělám změny v A, budu je chtít zmergovat do ostatních B, C, D. Jediné co mě napadá je to mít ve větvích, ale zase nevím jak udělat aby větve měly samostatné adresáře (používám lokální url pro testování: a.local -> adresář A, b.local > adresář B, atd.) |
||
Časová prodleva: 5 dní
|
|||
juriad Profil |
#2 · Zasláno: 11. 2. 2013, 02:03:27
Určitě nechceš mít jednotlivé aplikace v různých adresářích na úrovni gitového repository. Tím by vznikali duplicitní soubory a merge by doslova postrádaly smysl.
Předpokládejme že máš adresáře A, B. Budeš provádět následující (netestováno): mkdir repo # vytvoří vedle adresářu A a B nový adresář repo cd repo # přejde do adresáře repo git init # inicializuje gitové repository cp -R ../A/* . #překopíruje obsah eshopu A - toto bude první commit a základ celého repository git add --all # přidá vše ke commitnutí git commit -m "eshop A" # commitne obsah eshopu A do větve master git branch a # vytvoří větev a - aby se osamostanila od masteru git checkout -b b # přejde do nové větve b rm -R * # odstraní vše z working directory cp -R ../B/* . # překopíruje obsah eshopu B git add --all # přidá vše ke commitnutí git commit -m "eshop B odvozen z A" # commitne eshop B do větve b; nejspíš bude mít s A hodně společného, takže diff bude mít "trochu smysl" git checkout master # přejde do masteru # ukázka merge z masteru do b: git checkout master # přejde na master touch nejaky-novy-soubor # vytvoří soubor git add nejaky-novy-soubor # přidá soubor ke commitnutí git commit -m "pridan nejaky novy soubor" # commit na větvi master git checkout b # přejde na větev b git merge master # zamerguje větev master do větve b # v b přibyl soubor nejaky-novy-soubor více adresářu pro jednotlivé větve budeš simulovat pomocí skriptu git-new-workdir cd .. # teď jsi v adresáři, který obsahuje jen repo git-new-workdir repo a.local a # vytvoří working directory a.local podle větve a git-new-workdir repo b.local b # to samé pro větev b hlavní vývoj budeš provádět v masteru v adresáři repo, bez ohledu na to, že existují další větve |
||
Časová prodleva: 11 let
|
0