„Git“: tik neatkurtų failų sąrašas (taip pat vartotojo komandos)

Ar yra būdas naudoti komandą, pvz., „ git ls-files kad būtų rodomi tik failai be pėdsakų?

Priežastis, dėl kurios aš prašau, yra tai, kad naudoju šią komandą, kad apdorotų visus ištrintus failus:

 git ls-files -d | xargs git rm 

Norėčiau kažką panašaus ne atkuriamiems failams:

 git some-command --some-options | xargs git add 

Man pavyko rasti „ git ls-files-o parinktį, bet tai nėra tas, ko noriu, nes jis taip pat rodo ignoruojamus failus. Taip pat galėjau sugalvoti šią ilgą ir negražią komandą:

 git status --porcelain | grep '^??' | cut -c4- | xargs git add 

Atrodo, kad man reikia geriausios komandos, kurią galiu naudoti čia. Ir jei tai neįvyksta, kaip sukurti individualias git komandas?

277
27 сент. 27 jnylen rinkinys 2010-09-27 08:30 '10, 08:30, 2010-09-27 08:30
@ 9 atsakymai

Jei norite gauti nepavykusių failų sąrašą, pabandykite:

 git ls-files --others --exclude-standard 

Jei jums reikia xargs išvesties xargs , išmintinga naudoti tarpus naudodami git ls-files -z ir xargs -0 :

 git ls-files -z -o --exclude-standard | xargs -0 git add 

Geras slapyvardis, skirtas pridėti nepavykusius failus:

 au = !git add $(git ls-files -o --exclude-standard) 

Redaguoti: nuoroda: git-ls-files

447
27 сент. atsakymas buvo pateiktas rugsėjo 27 d. 2010-09-27 09:29 '10, 9:29, 2010-09-27 09:29

Jei norite ištrinti neapdorotus failus, atlikite šiuos veiksmus:

 git clean -df 
border=0

pridėkite x , jei norite įtraukti specialiai ignoruojamus failus. git clean -dfx daug per dieną.

Galite sukurti pasirinktinį gitą tiesiog rašydami scenarijų su pavadinimu „ git-whatever ir turėdami jį savo kelyje.

60
27 сент. atsakymą pateikė Dustin 27 rugsėjis. 2010-09-27 08:34 '10, 8:34 val. 2010-09-27 08:34

git add -A -n padarys tai, ko norite. -A prideda visus neapdorotus failus į repo, -n leidžia jį dry-run , kai pridedama nėra, bet išvestas visų pridedamų failų sąrašas.

41
04 апр. atsakymas, kurį pateikė Mike Lococo 04 Bal 2012-04-04 17:37 '12 at 17:37 pm 2012-04-04 17:37

Priimtas atsakymas patenka į failų pavadinimus su tarpu. Negaliu komentuoti šio klausimo (iki šiol mažas stackoverflow rezultatas), ir dabar nesu tikras, kaip atnaujinti slapyvardžio komandą, todėl čia pateiksiu patobulintą versiją:

 git ls-files -z -o --exclude-standard | xargs -0 git add 
27
14 дек. Atsakymą pateikė youurayy 14 Dec. 2011-12-14 17:31 '11, 17:31, 2011-12-14 17:31

Tai labai paprasta

Jei norite gauti visų nepažymėtų failų sąrašą, naudokite git būsenos komandą su -u parinktimi (-u ntracked-files)

 git status -u 
17
10 нояб. atsakymą pateikė Valentyna lapkričio 10 d. 2014-11-10 12:29 '14, 12:29 2014-11-10 12:29

Ieškodami failų, kuriuos galima pridėti. git show tai daro, bet jame taip pat yra daug kitų dalykų. Ši komanda yra naudinga norint gauti tą patį failų sąrašą, bet be viso kito.

  git status --porcelain | grep "^?? " | sed -e 's/^[?]* //' 

Tai naudinga, kai vamzdynai kartu ieškomi failų, atitinkančių tam tikrą modelį, o tada prisijungti prie „ git add .

 git status --porcelain | grep "^?? " | sed -e 's/^[?]* //' | \ egrep "\.project$|\.settings$\.classfile$" | xargs -n1 git add 
5
17 июня '15 в 14:57 2015-06-17 14:57 atsakymą pateikė cmac birželio 17 d., 15 val. 14:57 2015-06-17 14:57

Žinau, kad tai yra senas klausimas, tačiau iš sąrašo įtrauktų failų sąrašo aš maniau, kad pridėsiu dar vieną, kuris taip pat išvardytų nepavykusius aplankus:

Git švarią operaciją galite naudoti naudodami -n (bandomąjį darbą), kad parodytumėte, kurie failai bus ištrinti (įskaitant .gitignore failus):

git clean -xdn

Tai yra privalumas, rodantis visus failus ir visus aplankus , kurie nėra stebimi. Parametrai:

  • x - rodo visus nepažymėtus failus (įskaitant ignoruotą gitą ir kt., pvz., kūrimo išvestį ir tt)
  • d - rodyti nepavykusius katalogus
  • n - ir svarbiausia! - Dryrun, tai yra, iš tikrųjų, neištrinkite nieko, tiesiog naudokite valymo mechanizmą, kad būtų rodomi rezultatai.
3
28 февр. Atsakymas pateikiamas kodas_fodder 28 vasaris. 2018-02-28 16:11 '18 at 4:11 pm 2018-02-28 16:11

Visuose ankstesniuose atsakymuose, kuriuos aš patikrinau, taip pat yra failų, kuriuos norite atlikti, sąrašas. Čia yra paprastas ir paprastas sprendimas, kuriame išvardijami tik tie failai, kurie dar nėra repo ir kuriems netaikomas .gitignore .

 git status --porcelain | awk '/^\?\?/ { print $2; }' 
1
02 нояб. Atsakymą pateikė Frank-Rene Schäfer 02 lapkričio. 2018-11-02 15:26 '18, 15:26 2018-11-02 15:26

Manau, kad jis bus toks pat kaip numatytasis originalus plakatas:

git add .

0
05 июня '12 в 0:36 2012-06-05 00:36 atsakymą pateikė Timas Fulmeris birželio 12 d. 12 val. 0:36 2012-06-05 00:36

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