Autor Zpráva
Camo
Profil
Dobrý večir,
Začal som robiť s Gitom a mám takýto problém:
Mám napr. vetvu css v ktorej editujem css súbory. A mám vetvu js pre js súbory. Problém je keď medzi záložkami ostane nejaký súbor z inej vetvy ako práve editujem. Napr editujem js vetvu a medzi záložkami mi ostane css súbor. Keď ten súbor omylom zmením, Git mi ten súbor pridá medzi zmenené súbory, takže sa zrazu medzi js súbormi ocitne css, alebo hocičo iné. Keď sa to stane tak musím ten súbor ručne zmazať, aby som mohol urobiť commit.
Potreboval by som , aby mi Git zabránil v editovaní súborov, ktoré nepatria do aktuálnej vetvy. Robím s tým v PSPade ale tak isto to nefunguje aj v ST2.
Dá sa to nejako nastaviť, alebo nie?

Ďakujem
Tori
Profil
Pokud v aktuální větvi soubor neexistuje, tak by ho měl přidat mezi nové/nesledované, ne mezi změněné.
Z oblasti změn určených k commitu se soubor dá odstranit (= bude pouze jako změněný, ale ne k commitu): git reset HEAD file
Pak se dají odložit provedené změny do zásobníku:
git commit -m "text commitu" // uložíte co chcete
git stash save -u "odlozene-zmeny"  // odložíte si stranou ostatní změněné + nové soubory
git checkout js // přepnete na jinou větev
git stash pop // (poslední) odložené změny promítnete do této větve (jako byste je napsal znova)
Camo
Profil
Tori:
Áno zle som sa vyjadril. Ten súbor je označený ako untracked(nesledovaný).
Skúsil som ten stash -u, ale stash pop mi potom píše: "filename already exists, no checkout. Could not restore untracked files from stash" (teraz by som to asi potreboval dostať aj z tých odložených súborov.)

Ale o to, nejde mne stačí ten súbor zmazať z adresára v editore a je to ok. Len je to otravné a hodilo by sa, keby sa tie nepoužívané vetvy automaticky zamykali. To ma zaujíma. Či je to možné, alebo nie.
juriad
Profil
Camo:
Větve v gitu neslouží k oddělování souborů, ale nezávislých posloupností verzí celého repozitory, které vznikly ze společného předka. Tvoje snaha mít v jedné větvi pouze css, v druhé pouze js je tedy nesmyslná.

On je spíš problém v něčem jiném. „medzi záložkami mi ostane css súbor“ znamená, že při „omylom zmením“ PSPad ten soubor (který dosud držel jen v paměti) znovu vytvoří. Takže ani tak nejde o omylem změněný soubor, ale omylem vytvořený. Ale nechápu pak, proč se o něj Git stará. Sežeň si tedy editor, který tě varuje v okamžiku, kdy otevřený soubor přestane existovat na disku.

Mimochodem, ne každý změněný soubor musíš commitovat. Ty nejspíš provádíš git commit -a. Kdybys raději použil git add a přídal do indexu jen *.js, tak git commit (bez -a) jen necommitne a ty ten soubor nemusíš mazat.
Camo
Profil
juriad:
Větve v gitu neslouží k oddělování souborů, ale nezávislých posloupností verzí celého repozitory
Podľa všetkého máš pravdu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: