„git add - patch“, jei norite pridėti naujų failų?

Kai paleidžiu „ git add -p , ar git gali pasirinkti naujus failus, kuriuos norite pasirinkti

Taigi, jei foo.java naują failą, pavadintą foo.java , tada paleiskite git add -p, git neleis man pasirinkti šio failo turinio, kuris bus pridėtas prie indekso.

57
24 янв. nustatė Alexander Bird Jan 24 2013-01-24 03:09 '13, 3:09, 2013-01-24 03:09
@ 4 atsakymai

Norėdami tai padaryti su kiekvienu nauju failu, galite paleisti:

 git add -N . git add -p 

Jei norite jį naudoti dažnai, galite sukurti slapyvardį ~/.bashrc :

 alias gapan='git add --intent-to-add .  git add --patch' 

NB: Jei jį naudosite su tuščiu nauju failu, git negalės ją išspręsti ir pereiti į kitą.

7
11 авг. atsakymas pateikiamas Ulysse BN 11 rug. 2017-08-11 20:44 '17, 8:44 pm 2017-08-11 20:44

Kai bandžiau git add -p someNewFile.txt į naują failą (failą be pėdsakų), git tiesiog git add -p someNewFile.txt be No changes. ir sustojo. Turėjau pranešti git, kad pirmiausia ketinu sekti naują failą.

 git add -N someNewFile.txt git add -p 

Tačiau, kadangi failas nebuvo pažymėtas, jis bus rodomas kaip vienas milžiniškas gabalas, kuris negali būti sugadintas (nes jis yra naujas!). Taigi, turėjau redaguoti gabalą į mažesnius bitus. Jei nesate susipažinę su šia informacija, pradėkite naudoti šią nuorodą .

Atnaujinimas - informacijos apie „Hunk“ redagavimas, kurį norėčiau atnaujinti, jei minėta nuoroda išnyks. Kadangi naujas failas nėra stebimas, git add -p rodys kiekvieną failo eilutę kaip naują eilutę viename stulpelyje. Tada jis paprašys jūsų, ką norite daryti su šiuo gabalu, pateikdamas šį kvietimą:

Stage this hunk [y,n,q,a,d,/,e,?]?

border=0

Darant prielaidą, kad nenorite pataisyti viso gabalo (ir todėl visas failas, nes nesu įsitikinęs, kodėl šiuo atveju norėtumėte naudoti „ git add -p “?), Turite nurodyti parinktį e norite pasakyti git, ką norite redaguoti gabalas

Pasakę „git“, kad norite redaguoti kūrinį, jis turėtų nukristi jus į redaktorių, kad galėtumėte atlikti pakeitimus. Visose eilutėse turi būti prefiksas „ + , o failo pabaigoje „git“ yra keletas aiškinamųjų pastabų (su užrašu # ). Tiesiog ištrinkite visas linijas, kurių nenorite, savo pradiniame faile. Tada išsaugokite ir uždarykite redaktorių.

„Git“ gito parametrų paaiškinimas:

 y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk or any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk or any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help 
82
31 июля '13 в 23:38 2013-07-31 23:38 atsakymą pateikė CatShoes, liepos 31 d., 23:38, 2013-07-31 23:38

Taip pat yra labai panašus požiūris, naudojant vėliavėlę „

1) Pakeiskite nenustatytus pakeitimus į etapinius pakeitimus, kaip ir pridėtą failą.

 git add edited-file.txt git add new-file.txt git add directory-of-changes/ 

2) Pažvelkite į skirtumą (pastaba: galite įtraukti ir pakeitimus, ir naujus failus).

 git diff --cached 

3) Sukurkite pleistrą.

 git diff --cached > my_patch_file.patch 
1
16 сент. atsakymas yra dukart 16 sep . 2016-09-16 23:52 '16 at 11:52 pm 2016-09-16 23:52

git add -p tikrai prideda jau stebimų failų pakeitimus.

Interaktyvaus rinkmenų, kurias norite pridėti, komanda yra git add -i . Pavyzdžiui:

 $ git add -i *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> a 1: another-new.java 2: new.java Add untracked>> 2 1: another-new.java * 2: new.java Add untracked>> added one path *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> q Bye. $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: new.java Untracked files: (use "git add <file>..." to include in what will be committed) another-new.java 

(Tikroji komanda turi spalvų, kurių aš negalėjau iškirpti ir įklijuoti, todėl tai yra geriau nei atrodo)

Tiesą sakant, „ p atch git add -i komanda daro tą patį kaip „ git add -p , taigi antroji yra pirmos dalies pogrupis (net jei pripažįstu, kad man patinka add -p ir neapykantos add -i save!).

1
23 авг. Matthieu Moy atsakymas 23 rug. 2017-08-23 17:07 '17, 17:07 pm 2017-08-23 17:07

Kiti klausimai apie žymų arba Užduoti klausimą