Kaip kartoti git-checkout naudojant tik vandentiekio komandas?

Norėčiau vengti skambinti porceliano komandomis iš mano scenarijų, bet ar yra būdas gauti tam tikrą „ git checkout <commit> elgesį naudojant tik santechnikos komandas, pvz., checkout-index ? Mane ypač domina poveikis darbo kopijai: jei viskas yra švari, checkout pašalina failus, kurie buvo stebimi senajame HEAD, o ne naujame. Atrodo, kad „ checkout-index neturi informacijos apie failų ištrynimą. Artimiausias dalykas, kurį galiu galvoti, yra paskambinti

 git diff-tree -p <old> <new> | git apply 

bet skaičiuojant visą skirtumą, atrodo, brangiai kainuoja. Ar yra geresnis būdas?

14
24 июля '14 в 0:44 2014-07-24 00:44 Jack O'Connor yra nustatytas liepos 24 d. 14 val. 0:44 2014-07-24 00:44
ответ 1 atsakymas

Jūs ieškote git read-tree -um medžio git read-tree -um . Jis naudoja bazinį medį (paprastai įkelia HEAD ), tikslinį medį ir (netiesiogiai) rodyklę ir darbo stotį. Lentelę, apibūdinančią jos elgesį, buvo sunku suprasti, todėl aš turiu savo sukčiavimo kortelę suformatuoti, todėl man labiau svarbu. Bet kokiu atveju, jis įgyvendina „ git checkout .

 git read-tree -um HM # 'I' is the (implicit) index, GIT_INDEX_FILE Legend H Original tree (usually HEAD:) I Indexed tree M Merge target tree H->I \ H->M } status in second relative to first I->M / "-" file exists in neither new exists only in second deleted exists only in first same exists in both, unchanged changed exists in both, different (blank) irrelevant or all cases not otherwise given keep keep current version fail whole command fails, no changes delete delete worktree file H->I H->M I->M same keep deleted changed fail deleted deleted delete deleted same delete unless Index empty, else use M same keep same changed worktree clean: use M; dirty: fail same deleted worktree clean: deleted; dirty: fail new - keep new new changed fail changed changed changed fail changed deleted fail note: "index empty" identifies an initial checkout, where HEAD has been set but never loaded. git can't currently distinguish between a delete-everything index and an initial-checkout index. 
9
28 июля '14 в 3:02 2014-07-28 03:02 Atsakymą gaus nuo liepos 28 d., Liepos 14 d., „3 , 02:02 2014-07-28 03:02