Suderinti nuotolinį failą į git

Paprastai, jei norite atšaukti pakeitimus faile, kurį norite padaryti:

 git checkout -- <file> 

Ką daryti, jei pakeitimas, kurį noriu ištrinti, ištrina failą? Pirmoje eilutėje bus klaida:

 error: pathspec '<file>' did not match any file(s) known to git. 

Kuri komanda atkurs šį vieną failą neatšaukdama kitų pakeitimų?

premijos taškas: taip pat, kas, jei noriu atstatyti pakeitimą, prideda failą? Taip pat norėčiau žinoti, kaip pakeisti šį pakeitimą.

371
06 марта '12 в 23:33 2012-03-06 23:33 Lurscher yra nustatytas kovo 06 '12, 23:33 2012-03-06 23:33
@ 4 atsakymai

Darant prielaidą, kad norite atšaukti „ git rm <file> arba „ rm <file> efektus ir tada git add -A arba kažką panašaus:

 # this restores the file status in the index git reset -- <file> # then check out a copy from the index git checkout -- <file> 

Jei norite atšaukti „ git add <file> , pirmoji eilutė yra pakankama, jei to dar nepadarėte.

567
06 марта '12 в 23:46 2012-03-06 23:46 atsakymą pateikė „ twalberg“ kovo 12 d. 12 val. 23:46 2012-03-06 23:46

Atsakymai į abu klausimus pateikiami git status .

Norėdami išjungti naują failą, naudokite git rm --cached filename.ext

 # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: test 

Jei norite išjungti failo ištrynimą, naudokite git reset HEAD filename.ext

 # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: test 

Kita vertus, „ git checkout -- niekada nesibaigia, jis paprasčiausiai pašalina nestruktūrizuotus pakeitimus.

43
06 марта '12 в 23:37 2012-03-06 23:37 atsakymas pateikiamas seppo0010 kovo 6 d. 12 val. 23:37 2012-03-06 23:37

Atsakymai į jūsų du klausimus yra susiję. Pradėsiu nuo antros:

Įdėję failą (dažnai su git add , nors kai kurios kitos komandos taip pat netiesiogiai daro pakeitimus, pvz., git rm ), galite atšaukti šį pakeitimą su git reset -- <file> .

Jūsų atveju turėtumėte naudoti git rm kad ištrintumėte failą, kuris yra lygus paprasčiausiai jį ištrinti su rm ir vėlesniu keitimo etapu. Jei pirmą kartą jį išjungsite naudodami git reset -- <file> , galite jį atkurti naudodami git checkout -- <file> .

9
06 марта '12 в 23:38 2012-03-06 23:38 Atsakymą davė Ben Jackson kovo 6 d. 12 val. 23:38 2012-03-06 23:38

Jei jis buvo nustatytas ir nustatytas, bus atkurti failą:

 git reset COMMIT_HASH file_path git checkout COMMIT_HASH file_path git add file_path 

Tai padės ištrinti, kuri įvyko keliuose ankstesniuose sandoriuose.

2
10 авг. Atsakymas, kurį pateikė michaeldever 10 rugpjūtis 2017-08-10 17:19 '17, 17:19 2017-08-10 17:19

Kiti klausimai apie „ žymes arba užduoti klausimą