„Git“ laikomas nepakitęs ir praleidžiamas - ignoruojant simbolinę nuorodą

Turiu problemų dėl kapinyno ir gitų >

 git update-index --assume-unchanged [FILE] git update-index --skip-worktree [FILE] 

Mano klausimas: koks variantas bus geriausias? Kai tik tai padarysiu, noriu įsitikinti, kad jis niekada nebus atšauktas, nebent aš tai padarysiu. Noriu įsitikinti, kad esate grįžtamasis, perkrautas, sukurtas filialai, susilieja ir tt ... viskas veikia gerai.

20
26 мая '11 в 14:55 2011-05-26 14:55 ryanzec yra nustatytas gegužės 26 d ., 11 val ., 15:55 pm 2011-05-26 14:55
ответ 1 atsakymas

Abi parinktys turi problemų. --assume-unchanged iš naujo nustatomas, kai indeksas nukrenta (pvz., git reset), todėl greičiausiai jūs --assume-unchanged anksčiau ar vėliau. Tas pats pasakytina ir apie --skip-worktree ... tačiau galite išlaikyti vietinį failų, kurių nėra, sąrašą, todėl skip-worktree bitas nustatomas automatiškai, kai reikia. Pateikiami veiksmai:

  • Nustatykite „ core.sparseCheckout tiesą saugyklai.
  • Sukurkite .git/info/sparse-checkout failą, kuriame yra du šablonai: * kad įtrauktumėte viską ir !/foo kad neįtrauktumėte simbolinės nuorodos foo ( / reiškia prijungti prie aukščiausio lygio).
  • Dabar rankiniu būdu nustatykite skip-worktree bitą, tada ištrinkite simbolinę nuorodą.

Dabar jūs galite tęsti be baimės, kad „git“ automatiškai pataisys katalogą, bet pastebėsite, kad vis tiek turite problemų, jei kas nors aiškiai nurodo „ git add į katalogą ar bet kokį jo failą.

[Redaguota, kad pridėtumėte:] Po tolesnės diskusijos nustatėme šios paskutinės problemos sprendimą: įkelkite .gitignore failą * šablonu kataloge.

21
26 мая '11 в 16:42 2011-05-26 16:42 atsakymą pateikė Jan Krüger , gegužės 26 d. 11, 16:42 2011-05-26 16:42

Kiti klausimai apie „ žymes arba „ Ask a question“