Saistību dzēšana programmā Git ir kaut kas, ko varat darīt biežāk, nekā varētu gaidīt. Veicot šādu bieži sastopamu uzdevumu, jums, visticamāk, būtu ērts īss ceļvedis.

Šajā rakstā ir sniegta informācija par to, kā dzēst Git apņemšanos, un citi iespējamie risinājumi, ko varat izmēģināt. Tātad, ja esat pieļāvis kļūdu pēdējā saistībā vai vēlaties iztīrīt repo vēsturi, lasiet tālāk, lai uzzinātu.
Saistību dzēšana pakalpojumā Git
Varat dzēst apņemšanos pakalpojumā Git vairākos veidos. Ja nevēlaties vai nevarat mainīt Git commit ziņojumu , tad visizplatītākais risinājums ir izmantot komandas “git reset” un “git revert”.
Lai izmantotu “git reset”, rīkojieties šādi:
- Atrodiet apņemšanos, kuru vēlaties dzēst, izmantojot git log .

- Izmantojiet git reset –soft [commit hash], lai atsauktu commit komandu, neko neveicot.

- Vai arī izmantojiet git reset – hard [commit hash], lai atiestatītu uz apņemšanos pirms tās, kuru vēlaties dzēst.

- Aizstājiet “[commit hash]” ar tās saistību jaucējvārdu, kuru atlasāt.
Varat arī izmantot “git rebase -i HEAD~[Number]”, lai mainītu pēdējo saistību skaitu. Aizstāt [skaitlis] ar saistību skaitu. Git parādīs failu, kuru varat rediģēt, un noņemt apņemšanos, kuru vēlaties pamest. Dariet to tikai tad, ja vēl neesat veicis apņemšanos.
Šī ir vienkārša metode uz virsmas, taču esiet uzmanīgi. Tas neatgriezeniski noņem visas izmaiņas saistībās pēc tās atiestatīšanas, tāpēc pārliecinieties, ka tas ir tieši tas, ko vēlaties.
Varat arī izmantot “git revert” šādi:
- Ja vēlaties saglabāt izmaiņas savā darba direktorijā, izmantojiet git revert [commit hash] . Šī komanda izveido jaunu apņemšanos, kas atceļ izmaiņas no jūsu norādītās saistības.

- Pēc atgriešanas nospiediet izmaiņas attālajā repozitorijā, izmantojot git push .

Šeit ir vēl viena alternatīva, ja vēlaties dzēst vairākas noteiktas saistības:
- Izmantojiet git checkout [last commit hash], lai pārbaudītu pēdējo apņemšanos, kurai vajadzētu palikt.

- Izveidojiet jaunu filiāli ar git checkout -b remontu .

- Palaidiet git cherry-pick [specific commit hash] pirmajā apstiprinājumā, kuru vēlaties saglabāt.

- Atkārtojiet to pārējām saistībām, kuras vēlaties saglabāt.
- Palaist Git Checkout Master to Checkout Master.

- Atiestatīt galveno uz pēdējo izmantojamo commit ar git reset –hard [last commit hash] .

- Apvienojiet jauno atzaru, lai izveidotu galveno, izmantojot git sapludināšanas labošanu .

- Pēc tam palaidiet git push-f origin master, lai pārsūtītu uz tālvadības pulti.

Kad jums vajadzētu dzēst saistības
Ir dažas situācijas, kad apņemšanās noņemšana ir vislabākā rīcība. Šeit ir daži no tiem.
Slikts kods
Viens no visizplatītākajiem iemesliem, kāpēc vēlaties atbrīvoties no saistībām, ir tas, ka tajā esošais kods to vienkārši neizgriež. Varbūt esat pieļāvis kļūdu un vēlaties sākt no jauna, vai varbūt esat sapratis, ka rezultāts neatbilst tam, ko mēģināt sasniegt. Piemēram, iespējams, esat pievienojis funkciju, kas ir pretrunā ar citu jūsu koda daļu. Dzēšot šo apņemšanos, varat atgriezties, novērst problēmu un pēc tam atkārtoti apstiprināt laboto versiju.
Ja tikko esat ievadījis koda daļu un pēc tam pamanījāt acīmredzamu kļūdu, piemēram, kļūdu vai koda daļu, kurai tur nevajadzēja būt, bet jums nav laika to labot, tas ir labs iemesls. lai dzēstu saistību. Tā vietā, lai ļautu šim nevajadzīgajam vai kļūdainajam koda fragmentam iekļauties jūsu projekta vēsturē (un tas varētu radīt neskaidrības vai pat katastrofālas kļūdas kļūdu labošanā), varat dzēst šo apņemšanos. To darot, jūsu projekts būs tīrs.
Sensitīvi dati
Nejauša sensitīvu datu ievadīšana notiek biežāk, nekā jūs varētu domāt. Nav pārsteidzoši, ka šāda rīcība var radīt ievērojamu drošības risku gan personiskai, gan uzņēmumam. Jebkas, sākot no parolēm un API atslēgām un beidzot ar personisku informāciju, var viegli nonākt jūsu saistībās. Kad tas ir pieejams projekta telpā, ikviens var tai piekļūt un, iespējams, pārkāpt jūsu vai jūsu komandas drošību.
Šie negadījumi, iespējams, ir pat labāki iemesli, lai dzēstu saistības, nevis vienkārši slikts kods. Jūs varat rediģēt bojāto kodu un neuztraukties par to, ka tas paliks projekta vēsturē, taču tas nav risks, ko vēlaties uzņemties ar sensitīviem datiem. Piemēram, ja nejauši veicat failu, kurā ir API atslēgas, noņemot šo apstiprinājumu, šī atslēga nenonāk nepareizās rokās.
Vēstures saglabāšana tīra
Vēl viens pārliecinošs iemesls Git apņemšanās dzēšanai ir saglabāt projekta vēsturi tīru un vienkāršu. Strādājot pie projekta, jūsu saistību vēsture kļūst arvien vairāk pārblīvēta ar nelieliem atjauninājumiem, eksperimentiem vai izmaiņām, kas vairs nav aktuālas. Ja vēlaties apskatīt vēsturi jebkāda iemesla dēļ, piemēram, lai noskaidrotu, kāpēc veicāt noteiktas izmaiņas vai pēc eksperimenta atgrieztos stabilā stāvoklī, pārblīvēta vēsture var kļūt par problēmu.
Dzēšot nevajadzīgās saistības, jūs saglabājat savu projekta vēsturi kārtīgu un viegli sekojat jums un citiem jūsu komandas locekļiem. Tas ir vēl noderīgāk pirms filiāles apvienošanas, lai jūs varētu sniegt skaidru, kodolīgu un atbilstošu vēsturi ikvienam, kas pārskata jūsu kodu. Piemēram, ja jums ir vairākas darbības, kas bija tikai nelielas funkcijas uzlabojumi, iespējams, vēlēsities tās apvienot vienā saistībā, lai saglabātu savu vēsturi kārtīgu.
Labākā prakse un padomi
Pirms apņemšanās dzēšanas ievērojiet dažas paraugprakses, lai projekts būtu funkcionāls un izvairītos no neparedzētām sekām.
Dublējiet savu darbu
Pirms dzēšat jebkādas saistības pakalpojumā Git, ieteicams dublēt savu darbu, pat ja uzskatāt, ka to paturēt nav vērts. Tas var šķist papildu darbs, taču dublējums ir drošības tīkls, ja viss nenotiek, kā plānots.
Varat izveidot dublējumu, izveidojot jaunu filiāli, kas atspoguļo jūsu repozitorija pašreizējo stāvokli. Piemēram, pirms dzēšat apņemšanos, kas ieviesa jaunu līdzekli, izveidojiet rezerves zaru “feature-backup”. Tas dos jums brīvību eksperimentēt un dzēst saistības, nebaidoties zaudēt svarīgu darbu. Tātad, ja vēlāk saprotat, ka jums ir nepieciešams kaut kas no izdzēstās saistības, jūs to neesat pazaudējis uz visiem laikiem. Ja nolemjat, ka šī dublējums jums vairs nav vajadzīgs, varat dzēst Git filiāli .
Neizdzēsiet publiskās saistības
Strādājot ar publiskajām krātuvēm, īpaši atvērtā pirmkoda projektos vai komandas vidēs, jums jābūt īpaši piesardzīgam saistībā ar saistību dzēšanu. Tiklīdz apņemšanās ir nosūtīta uz publisku repozitoriju un citi to ir izvilkuši, šīs saistības dzēšana var sajaukt vai novērst ikvienu iesaistīto personu uzmanību un traucēt darbu. Tā ir paklāja izvilkšana no kāda apakšas – nevis patīkama pieredze, bet drīzāk neapdomīga. Ja jums ir jāizdzēš jau publiska apņemšanās, iepriekš informējiet savu komandu vai projekta dalībniekus, lai viņi zinātu, kas notiek. Tādā veidā ikviens apzinās un var attiecīgi pielāgot savu darbu.
Izmantojiet Revert publiskajiem atpirkšanas darījumiem
Ja joprojām vēlaties atsaukt izmaiņas publiskajā repozitorijā, tā vietā, lai neatgriezeniski dzēstu saistību, varat atsaukt sapludināšanu pakalpojumā Git . Atšķirībā no git atiestatīšanas, kas efektīvi pārraksta vēsturi, “git revert” izveido jaunu apņemšanos, kas atsauc iepriekšējās saistībās veiktās izmaiņas.
Tāpēc šīs komandas izmantošana ir daudz drošāka un pārskatāmāka, īpaši strādājot ar citiem. Jūs atklāti paziņojat saviem komandas locekļiem, ka, iespējams, esat pieļāvis kļūdu, un atdodat saistības, kas to labo. Ja veicāt apņemšanos ar nozīmīgu kļūdu, “git revert” ļauj ātri novērst šīs kļūdas sekas, vienlaikus saglabājot neskartu projekta vēsturi. Tādējādi tiek saglabāta projekta vēstures integritāte un ikviena lokālā krātuve ir saskaņota ar tālvadības pulti.
Pirms dzēšanas vēlreiz pārbaudiet
Viens no lielākajiem riskiem, dzēšot saistības pakalpojumā Git, ir zaudēt laiku un pūles, ko veltāt šai saistībām. Lai to novērstu, pārskatiet visas izmaiņas katrā saistībā, kuru vēlaties noņemt. Izmantojiet “git log vai git show [commit hash]”, lai pārbaudītu saistības. Ja noņemat apņemšanos, kas kodam pievienoja vairākas funkcijas, pārliecinieties, vai jūsu projektam šīs funkcijas nav vajadzīgas, lai tās darbotos vai ka tās ir replicētas citur.
Apņemoties to
Ir daudz iemeslu, lai dzēstu saistības pakalpojumā Git, piemēram, saglabāt savu vēsturi kārtīgi, novērst mulsinošas kļūdas vai aizsargāt savu sensitīvo informāciju no ziņkārīgo acīm. Neatkarīgi no iemesla, atcerieties, ka ir divi veidi, kā to izdarīt – “git reset” un “git revert”, katrs no tiem kalpo citam mērķim, tāpēc izvēlieties savam projektam piemērotāko. Papildu skaidrības labad varat arī pārdēvēt Git filiāli .
Vai jums kādreiz ir nācies dzēst saistības pakalpojumā Git? Kāda bija jūsu pieredze, un vai jums ir kādi padomi, ar ko dalīties? Atstājiet komentāru zemāk un turpiniet sarunu.