Považuji git za těžké pochopit, protože jsem nemohl najít význam slov použitých pro akce. Zkontroloval jsem ve slovníku význam „fáze“ a žádný z významů nesouvisel s koncepty řízení zdrojů.
Co znamená „fáze“ v kontextu git?
Komentáře
Odpovědět
Do fáze souboru je jednoduše připravit to jemně na potvrzení. Git se svým indexem vám umožňuje provést pouze určité části změn, které jste provedli od posledního potvrzení. Řekněme, že pracujete na dvou funkcích – jedna je hotová a jedna ještě potřebuje nějakou práci. Nechtěli byste se dopustit odevzdání a jít domů (konečně 5 hodin!), Ale nechtěli byste spáchat části druhé funkce, která ještě není hotová. Připravujete části, o kterých víte, že patří k první funkce a potvrzení. Nyní je vaše potvrzení vaším projektem s první funkcí hotovou, zatímco druhá je stále ve fázi rozpracování ve vašem pracovním adresáři.
Komentáře
- Dobré vysvětlení. Všimněte si, že distribuce git vám zjevně umožňuje zavázat obě funkce, protože revize jsou lokální (nejprve). Možná budete chtít rozdělit úpravy do jednoho revizi na funkci a opět se hodí staging.
- Nemám ‚ nerozumím tomu, proč k tomu potřebujete staging. Mohu to udělat s HG nebo dokonce SVN pouze tím, že se zavážu příslušné soubory. Zdá se, že tato funkce je primárně navržena na pomoc lidem, kteří trvají na práci s příkazovým řádkem, kde ‚ s těžší t o zaškrtávací políčka u toho, čeho se dopouštíte.
- @ jiggy git vám umožňuje zinscenovat část souboru. Můžete také vytvořit soubor, provést další úpravy a poté potvrdit stav, ve kterém se nacházel při přípravě. ‚ To nemůžete udělat v podvracení.
- @jiggy V SVN existuje něco mezi tím, než vyberete, které soubory / části souborů se mají spáchat a když dokončíte psaní zprávy o potvrzení, zaznamená se, které soubory / části jste vybrali k potvrzení. Možná to nikdy nebude výslovně uvedeno, může to být implementováno v klientovi SVN, spíše než ve skutečné části úložiště, mohou to být jen nějaké příznaky v paměti, ale to je SVN ‚ s etapa. ‚ jsem se na HG nedíval, ale mám podezření, že dělá to samé. Rozdíl oproti gitu spočívá v tom, že git uznává, že jde o věc, zaznamenává ji na disk a umožňuje uživateli se k ní dostat přímo.
- Druhá šipka “ scénické soubory “ na obrázku mohou být zavádějící. Může být přesnější “ scénické hunks „?
Odpověď
Jelikož na to všichni dosud odpověděli „formálním“ způsobem, dovolte mi to pomocí alternativ, které posílí učení pomocí síly metafor.
Takže pracovní oblast je jako:
- mezipaměť souborů, které chcete spáchat
- ne série trubek, ale ve skutečnosti sklápěč, připravený přesunout práci, kterou jste naložili, do úložiště
- kouzelného místa, kde se vybrané soubory promění v kámen s vaším čarodějnictvím a mohou být magicky přeneseny do úložiště podle vašeho rozmaru
- žlutá cihlová cesta, aby soubory šťastně šly do úložiště (nebo odpadly, pokud se chcete vrátit)
- fiktivní místo v námořním přístavu, kde jsou soubory obdržíte pár cementových bot a poté je vrhnete do moře úložiště
- recepce v knihovně, vložíte tam soubory, aby se knihovník připravil na uložení do knihovny
- krabička, do které vložíte věci před tím, než ji vložíte pod postel, kde je vaše postel úložiště krabic, které jste dříve vložili do
- nakládací pozice souborů, než se dostane do skladu úložiště s nakladač
- filtr elektrického odkapávacího kávovaru, pokud jsou soubory jako kávový prášek, pak oddané soubory jsou uvařená káva
- kancelář Scrooge McDuck vedle trezoru, soubory jsou jako coiny, než půjdou do trezoru jeho masivního obchodu s penězi
- obchod s domácími mazlíčky, jakmile si přinesete domácího mazlíčka domů, jste „oddáni
Je to magické !
Komentáře
- Milujte analogie ; způsob, jak jít bud ^ _ ^
- Milujte poslední analogii.
- Tato odpověď byla “ DESPERATELY “ potřebné v prostoru běžných pokusů vysvětlit metafyziku stagingu git index = git. Upřímně řečeno, rád bych také ‚ d věděl, na co Linus myslel, když se rozhodl, že chce oblast indexu. Líbí se mi, ale prostě chci lépe ocenit, proč je dobré ho ‚ mít a jak jej co nejúčinněji používat.
Odpověď
Postup je krok před procesem odevzdání v git. To znamená, že potvrzení v git se provádí ve dvou krocích: pracovní a skutečné potvrzení.
Dokud je sada změn v pracovní oblasti, umožňuje vám git ji upravovat, jak se vám líbí (nahraďte připravené soubory za jiné verze fázovaných souborů, odstranění změn z fázování atd.).
Přerušený čas metafory:
Zvažte scénář, kdy zavoláte stěhovače, abyste dostali věci ze starého bytu do nového bytu. Než to uděláte, projdete si věci, rozhodnete se, co si vezmete a co vyhodíte, zabalíte do pytlů a necháte na hlavní chodbě. Stěhováci jednoduše přijdou, vezmou (již zabalené) tašky z chodby a přepraví je. V tomto příkladu je vše připraveno, dokud se stěhovači nedostanou k vašim věcem: vy se rozhodnete, co se kam dostane, jak to zabalit atd. (Např. Můžete se rozhodnout, že polovina vašich věcí bude vyhozena, než se stěhovači vůbec dostanou – to “ Část z pracovní fáze).
Z technického hlediska pracovní fáze také podporuje transakční závazky rozdělením všech operací na to, co může selhat (pracovní) a co nemůže selhat (potvrzení):
Potvrzení v git je implementováno transakčně, jakmile je staging úspěšný. Několik kroků v stagingu může selhat (například je třeba se zavázat, ale váš HDD je plný 99,9999% a git nemá prostor pro Proveďte potvrzení). Toto se nezdaří ve stagingu (váš repozitář nebude poškozen částečným potvrzením) a proces stagingu neovlivní vaši historii komitace (nenaruší váš repozitář v případě chyby).
Komentáře
- … a zatím tak málo hlasů.
Odpověď
Staging vám umožňuje jemnější kontrola přesně jak chcete přistupovat k řízení verzí.
Odpověď
Chcete-li přidat další vynikající odpovědi, zde je název, z něhož pochází název „stage“:
Zkontroloval jsem ve slovníku význam fáze a žádný z významů nesouvisel s koncepty řízení zdrojů.
V angličtině „to stage“ může znamenat
organizovat a účastnit se (veřejné akce): příznivci UDF uspořádal demonstraci v Sofii
(od http://oxforddictionaries.com/definition/stage )
Název „staging“ pro funkci git je odvozen z tohoto významu: Při přípravě připravujete a organizujete potvrzení.Samozřejmě potvrzení není úplně stejné jako výkon, ale je důležitá událost ve VCS :-).
Komentáře
- Já ‚ jsem si myslel, že se to více shoduje s použitím pracovního příspěvku
- Totéž. Také “ bod, období nebo krok v procesu nebo vývoji. “
- Také ‚ pracovní server ‚ je docela běžný termín používaný k popisu serveru, který ‚ je mezi vývojem a produkce.
Odpověď
„Fáze“ je technicky nutný mezikrok v procesu kontroly soubor, jmenovitě shromažďování změn, které mají být přidány do úložiště. Autoři společnosti Git se rozhodli tento krok zviditelnit a vytrvat tam, kde ostatní VCS z něj činí přechodnou součást procesu odevzdání. Je to tedy jen možnost, kterou vám git dává, protože ano, proč ne?
Jak to vidím já, hlavní věc, kterou vám git „stage“ dává, že ostatní VCS nemají, je, že ji můžete použít ke kontrole souboru. Je to vlastně nepojmenovaný, nekomentovaný lokální commit, který vám poskytne přechodný krok mezi je hotovo se všemi vašimi pracemi a trvale je odevzdáváte do úložiště a nemáte vůbec nic uloženo v místním repo.
Řekněme například, že máte funkci částečně dokončenou. Je ve stabilním stavu, projde všemi testy a může přejít do výroby, ale musíte na ní ještě více pracovat. Můžete provést všechny své změny a poté pokračovat v práci na této funkci.
Později budete mít možnost pouze potvrdit, co jste provedli (a poslat toto potvrzení do vzdáleného úložiště), nebo přidat svůj nové změny v pracovní oblasti a pak se zavázat, že všechny najednou, nebo vrátit zpět jen vaše nové změny a vrátit pracovní adresář do stavu, ve kterém byl, když jste provedli změny.
Je to zcela možné prakticky úplně přeskočit pracovní plochu a jednoduše použít -a
možnost git commit
, pokud pracovní oblast pro vás není užitečným konceptem. Spousta lidí přeskakuje staging a nástroje grafického uživatelského rozhraní to obvykle také umožňují.
Komentáře
- “ other VCS don ‚ t “ – co vás k tomu přiměje? Zdá se, že police v Perforce dělají co popisujete, a dokonce is několika dalšími zvonky a píšťalkami
- @gnat ano, samozřejmě mnoho dalších VCS vám dá něco jako inscenaci. Pod “ jinými VCS “ mám na mysli jiné VCS, které ‚ nemají něco jako git ‚ s, protože na to OP odkazoval.
- Zjistil jsem, že tato odpověď je nesmírně lepší než všechny výše uvedené, protože ‚ je jediný, který objasňuje, proč Staging vůbec existuje (je technicky vyžadován ), vysvětlení jeho původu ( Git ‚ autoři se rozhodli tento krok zviditelnit a vytrvat ) a přidat to, co já osobně považuji za dobrou definici ( mezilehlé, nepojmenované, nekomentované místní potvrzení ) . Myslím si však, že by to mohlo být vylepšeno citací zdroje pro prohlášení o původu inscenace a podrobněji rozpracovat, proč je to ‚ s technicky vyžadováno . @OldPro
- Pokud byl git navržen od nuly, mohlo to být jen součástí zobecněné “ větve “ koncept, místní a v tomto případě pro ostatní neviditelný. Podobně “ stash “ mohl být právě implementován (a pochopen!) Jako konkrétní příklad zobecněného konceptu “ větev. “ Pak můžete mít libovolný počet úrovní “ inscenace “ dáváte přednost.
Odpověď
U většiny ostatních systémů pro správu verzí jsou 2 místa store data: your working copy (the folders / files that you currently using) and the datastore (where the version control explains how to pack and store your changes). V Gitu existuje třetí možnost: pracovní oblast (nebo index). Je to v podstatě nakládací dok, kde můžete zjistit, jaké změny budou odeslány.
zdroj: http://gitready.com/beginner/2009/01/18/the-staging-area.html
Komentáře
- Zdá se, že to ‚ nepřidává nic podstatného oproti předchozím 6 odpovědím.
- Zmiňuje se o indexu. A odkazy na velmi důkladný článek. Hlasování BTW, některé odpovědi výše jsou pouze vtipy.
Odpověď
Chápu to, předpokládám, že vyvíjím funkci přihlášení a k dokončení je zapotřebí 5 po sobě jdoucích kroků. Zde vám pracovní fáze pomůže při práci na krocích, jako je
provedeno v 1. kroku.
provedeno v 2. kroku, nyní jsou správné 1. a 2. krok.
pokazit krok 3 ne pokladna poslední krok, který je krokem 2
stejným způsobem, jakmile jste provedli všech 5 kroků, což znamená, že funkce je dokončena, nyní proveďte potvrzení.
Komentáře
- to ‚ nepřidává nic podstatného k bodům uvedeným a vysvětleným v předchozích 9 odpovědí
- ano, máte pravdu, jen jsem se snažil vysvětlit jednoduchým a sladkým způsobem.
- A jaké mám praktické využití tohoto konceptu, snažil jsem se to vysvětlit
- zvažte možnost podívat se na diskusi zde: Jsou druhé TL; DR odpovědi přijatelné? (FWIW ve srovnání s předchozími odpověďmi ‚ nevypadá to jednoduše ani sladce)
- děkuji, pane, mám dotaz. Narazil jsem na mnoho odpovědí a většina z nich je příliš složitých, ano, jsou správné, ale obtížně strávitelné najednou. Věřím, že pokud ‚ nedokážete něco jednoduše vysvětlit, pak vy nenaučili jste se to správně, nebo nevíte, jak to používat ‚. Takže je špatné dát shrnutí nebo jednoduchý způsob odpovědi?
git add file.ext
pro konkrétní soubor nebogit add .
ovlivní všechny upravené a nesledované soubory. O souborech, které byly přidány tímto způsobem, se říká, že jsou “ uspořádané “ a budou zahrnuty do dalšího “ spáchat „. Commit je snímek vaší práce vytvořené např. sgit commit -m "I wrote something"
.