Kaip laikinai ignoruoti neišbandytus failus „git pull“?

Turiu naujų failų, kurių dar nepridėjau; Aš nesu įsitikinęs, kad aš, aš vis dar nesuinteresuotas. Bet aš noriu gauti tai, kas yra naujausia serveryje.

Tačiau, kai aš git pull gaunu error: Your local changes to 'XXXX' would be overwritten by merge. Aborting. pranešimą error: Your local changes to 'XXXX' would be overwritten by merge. Aborting. error: Your local changes to 'XXXX' would be overwritten by merge. Aborting. error: Your local changes to 'XXXX' would be overwritten by merge. Aborting. XXXX yra mano naujas failas.

Kaip galiu pasakyti, kad „git“ įkelia pakeitimus ir naujus failus iš serverio, papasakojo apie galimus prieštaravimus tarp to, kas yra serveryje, ir mano vietinių pakeitimų, esančių jau saugykloje, ir tuo pačiu metu nepertraukti, nes turiu naują failai vietoje?

Nenoriu jų pridėti prie.gitignore, nes dažnai susiduriu su tokia situacija, ir nenoriu pridėti ir ištrinti failų iš „gigignore“ visą laiką kvailiems dalykams ... ypač todėl, kad nenoriu rizikuoti pamiršti tam tikrą failą , kuris galų gale nuspręstų, kad jis turėtų būti įtrauktas į saugyklą, todėl noriu, kad git status ir toliau pasakytų man apie juos. Kartais aš git status -uno kai noriu ignoruoti naujus failus, o kartais git status -uno git status kad sužinotume, kas nauja, ir nuspręsti, ką laikyti ir ką atsisakyti. Bet aš negalėjau rasti lygiavertės galimybės git pull .

Mano googling bandymai pritraukia mane į žmones, kurie nori perrašyti savo vietos pakeitimus saugykloje ar kitus panašius scenarijus. :( Perskaičius dokumentaciją, sužinojau, kad galėčiau git fetch kad atnaujintumėte savo vietinę saugyklą, kuri nepateikė jokių klaidų, bet taip pat nepakeitė savo darbo kopijos. Spausdinti kitą veiksmą po to: - / Bet kuriuo atveju: klaidos būtų tobula ...

2
18 апр. nustatyti msb 18 Bal 2018-04-18 20:53 '18, 20:53 2018-04-18 20:53
@ 2 atsakymai

Pirmiausia turėsite jį slėpti ir pritaikyti pakeitimus ištraukę jį iš konsolės arba iš naujo nustatyti dabartinį filialą į paskutinį įvykį. Filialo atstatymas lems jūsų pakeitimų praradimą.

 git stash // after you have pulled from remote git stash apply // OR git stash pop 

Čia galima rasti labai gerus skirtumus tarp apply ir pop .


Taip pat galite atkurti dabartinį filialą naudodami šią komandą.

 git reset --hard 
2
18 апр. atsakymą pateikė Ru Chern Chong 18 balandžio. 2018-04-18 20:55 '18, 8:55 val. 2018-04-18 20:55

Kaip tikriausiai žinote, „ git pull iš esmės yra git fetch o po jo - git merge .

Žingsnis, kuris nepavyksta, nėra git fetch , tai yra git merge :

 ... overwritten by merge 

Atkreipkite dėmesį, kad paskutinis žodis čia susilieja. Tai reiškia jūsų neapibrėžtumą:

Turiu naujų failų, kurių dar nepridėjau; Aš nesu įsitikinęs, kad aš, aš vis dar nesuinteresuotas.

jis jau nusprendė, kad kažkas kitas už bent vieną tokį failą: šis failas dabar yra įtrauktas į šį kitą fiksatorių. Tai yra tas, kurį perrašys „Geet“.

Dabar galite pasirinkti keletą variantų:

  • Negalima sujungti (arba dar nesujungti): galite palikti failą be pėdsakų. Manau, kad tai gana aiški, tačiau padėtis neišspręsta. Galų gale, jūs (tikriausiai?) Turėtų susivienyti.

  • Sujungti: failas bus stebimas. Tada turite galimybę pasirinkti, kaip „Git“ turėtų tvarkyti esamą nepažeistą failą:

    • Pridėti ir užrakinti. „Git“ sujungs jūsų pakeitimus su baze ir pasikeis nuo jo įkūrimo. Manoma, kad abu pakeitimai prideda šį failą, t. Failas nėra sujungimo duomenų bazėje. Tai reiškia, kad konfliktas bus konfliktas, kuris yra papildomas / pridedamas, o tai yra skausmas.
    • Ištrinkite nepanaudotą failą, išsaugokite failo versiją kitoje vietoje. Leiskite „Git“ susijungti (kaip pagreitintą arba tikrą susijungimą, priklausomai nuo to, ką jis daro). Rankiniu būdu sujungti savo pakeitimus, pridėti ir padaryti savo naują įsipareigojimą.
    • Kitas vaikinas yra neteisingas ir failas neturėtų būti stebimas: išsaugokite failo versiją kitur. Leiskite „Git“ sujungti. Ištrinkite failą ir išspręskite pašalinimą. Tada galite grąžinti savo neapdorotą failą.

Yra keletas papildomų parinkčių (pavyzdžiui, perkrauti vietoj jungimo), tačiau visos jos turi tokią pačią situaciją: arba failas yra stebimas (kaip tai daroma įsipareigojime, kurį pasakėte „Git“ sujungti), arba turite bet kada atnaujinti šį įvykį, ištrinti failą ir dar kartą įsipareigokite, kai failas nebus stebimas.

Kaip jūs „išsaugote failą kitoje vietoje“ priklauso nuo jūsų, pavyzdžiui, galite tiesiog jį visiškai pašalinti iš darbo medžio, arba galite naudoti „ git stash kad galėtumėte jį priskirti failui.

Kai jis veikia, git stash gana patogus, bet kadangi iš tikrųjų tai du ar tris įsipareigojimus, kurie nėra jokiame skyriuje, tai yra gana sudėtingas mažas žvėris, o kai jis suklysta, tampa sunku su ja susidoroti. Todėl, viskas, kas gali būti sunku, man patinka vengti git stash . Atkreipkite dėmesį, kad pagal nutylėjimą git stash užfiksuoja tik stebimus failus, taigi jums reikia git add jį, kad gautumėte jį dviejuose įsipareigojimuose, kad git stash paprastai padarytų. Galite naudoti „ git stash -u kad padarytumėte trečiąjį įvykį, kuris saugo neapdorotus failus, tačiau dėl to sunkiau dirbti su atributais.

1
18 апр. atsakymas pateikiamas 18 d. 2018-04-18 22:23 '18, 22:23 pm 2018-04-18 22:23

Peržiūrėkite kitus klausimus apie „ tags“ arba „ Klauskite“

"192.102.6.96 - 192.102.6.96"