naudojant git skaitymo medį be darbo medžio

Bandau sukurti įvykių istoriją, naudojant git santechnikos komandas su atvira repo. Galiu sukurti įsipareigojimus su vieninteliu nenurodytu medžiu, kuriame yra BLOB, bet aš negaliu suprasti, kaip padaryti šį nenurodytą medžio objektą kitų medžių objektų.

Bandžiau naudoti git read-tree --prefix=tree_name tree_sha ir jis man sako: fatal: This operation must be run in a work tree

Bandžiau naudoti git mktree (kaip parodyta šiame puslapyje ) taip: cat../info.txt | git mktree cat../info.txt | git mktree cat../info.txt | git mktree cat../info.txt | git mktree

info.txt - failas, kuriame yra 1 eilutė:

 040000 tree aa8c07e1371022a183b011d5d41517ef54780a17 test_tree 

ir jis man sako:

 fatal: input format error: 040000 tree aa8c07e1371022a183b011d5d41517ef54780a17 tree_name 

Ar kas nors gali man pasakyti, kaip sukurti ir pavadinti medžius?

2
09 янв. nustatytas prw56 Jan 09 2015-01-09 17:34 '15, 17:34 pm 2015-01-09 17:34
@ 2 atsakymai

Jums reikia keturių erdvių, o ne vieno tarp „hash“ ir „test_tree“. Jei jis vis dar neveikia, pabandykite skirtuką.

 040000 tree aa8c07e1371022a183b011d5d41517ef54780a17 test_tree 
1
11 янв. Atsakymą pateikė ThePyroEagle Jan 11 2015-01-11 15:02 '15 15:02 2015-01-11 15:02

Manau, kad medis su hash aa8c07e1371022a183b011d5d41517ef54780a17 jau yra jūsų repo? Jei ne, git mktree nepavyks. Be to, ar jums yra galutinis naujas info.txt info.txt ? Mano dokumentų skaitymas rodo, kad tai taip pat būtina.

Sėkmingai naudoju git mktree taip:

 $ cat tree.txt 040000 tree 4d5fcadc293a348e88f777dc0920f11e7d71441c foo $ git mktree < tree.txt 0a7f38a609340d0b8eede2f6debf8bad4191738f 

Kur pirmosios dvi vietos yra tarpai, o trečiasis yra skirtukas ir paskutinis naujas eilutė. Jei kyla abejonių, paleiskite git ls-tree ir patikrinkite jo išvestį, galbūt naudodami xxd .

0
13 янв. Atsakymą pateikė Andrew Aylett Jan 13 2015-01-13 20:20 '15 - 20:20 2015-01-13 20:20

Kiti klausimai apie žymas arba Užduoti klausimą