Neįsipareigotų pakeitimų perkėlimas į naują Git filialą

Neįsipareigotų pakeitimų perkėlimas į naują Git filialą
Neįsipareigotų pakeitimų perkėlimas į naują Git filialą

Naujo filialo steigimas neatliktam darbui

Kuriant naujas funkcijas, įprasta suprasti, kad pakeitimai turi būti atskirti savo šakoje. Tai leidžia geriau organizuoti ir lygiagrečiai plėtoti. Jei pradėjote dirbti su nauja funkcija ir viduryje nusprendžiate, kad ji turėtų būti atskirame filiale, „Git“ yra paprastas būdas perkelti šiuos neįsipareigtus pakeitimus.

Šiame straipsnyje paaiškinsime, kaip perkelti esamą, neatidėliotą darbą į naują skyrių. Be to, sužinosite, kaip iš naujo nustatyti dabartinį filialą neprarandant pažangos. Tai užtikrina, kad jūsų darbo eiga išliks švari ir efektyvi.

komandą apibūdinimas
git checkout -b <branch-name> Sukuria naują filialą ir perjungia į jį.
git add . Pakopina visus nepatvirtintus pakeitimus darbiniame kataloge.
git commit -m "message" Įgyvendina etapinius pakeitimus aprašomuoju pranešimu.
git checkout - Perjungiama atgal į anksčiau išregistruotą filialą.
git reset --hard HEAD~1 Iš naujo nustato dabartinę šaką į ankstesnį įsipareigojimą, atmetant pakeitimus.
#!/bin/bash Nurodoma, kad scenarijus turi būti paleistas bash apvalkale.

„Git“ darbo eigos supratimas, kaip valdyti neatliktą darbą

Pirmajame scenarijaus pavyzdyje mes rankiniu būdu perkeliame neįpareigotus pakeitimus į naują šaką naudodami Git komandų seriją. Procesas prasideda nuo git checkout -b new-feature-branch, kuris sukuria naują šaką pavadinimu „naujos funkcijos filialas“ ir perjungia į ją. Tai būtina norint atskirti naujos funkcijos darbą nuo pagrindinės šakos. Tada mes surengiame visus neįgyvendintus pakeitimus git add .. Ši komanda užtikrina, kad visi modifikuoti ir nauji failai būtų paruošti įsipareigoti. Po to, git commit -m "Move uncommitted work to new feature branch" komanda šiuos pakeitimus įveda į naują šaką su pranešimu, paaiškinančiu veiksmą.

Užtikrinus pakeitimus naujajame filiale, grįžtame į pradinį filialą su git checkout original-branch. Norėdami atkurti pradinę šaką į ankstesnę būseną, naudojame git reset --hard HEAD~1. Ši komanda priverstinai atstato šaką į ankstesnį įsipareigojimą ir atmeta visus nuo tada atliktus pakeitimus. Ši komandų serija užtikrina, kad darbas su nauja funkcija būtų išsaugotas atskiroje šakoje, o pradinė šaka bus iš naujo nustatyta į švarią būseną.

Proceso automatizavimas naudojant apvalkalo scenarijų

Antrasis scenarijaus pavyzdys automatizuoja šį procesą naudodamas apvalkalo scenarijų. Scenarijus pradedamas tikrinant, ar buvo pateiktas naujas filialo pavadinimas if [ -z "$1" ]; then, kuris išeina iš scenarijaus, jei nenurodytas vardas. Kintamasis NEW_BRANCH=$1 kintamajam priskiria pateiktą šakos pavadinimą. Tada scenarijus sukuria ir persijungia į šią naują šaką su git checkout -b $NEW_BRANCH. Visi neatlikti pakeitimai atliekami naudojant git add ., ir įsipareigojo su git commit -m "Move uncommitted work to $NEW_BRANCH".

Atlikus pakeitimus, scenarijus grįžta į ankstesnę šaką naudojant git checkout -. Paskutinė komanda git reset --hard HEAD~1 iš naujo nustato pradinę šaką į ankstesnį įsipareigojimą, užtikrindama, kad ji būtų švari ir be pakeitimų, kurie buvo perkelti į naują šaką. Šis apvalkalo scenarijus suteikia patogų būdą automatizuoti neatliktų darbų perkėlimo į naują šaką ir dabartinės šakos nustatymo iš naujo procesą, kad būtų lengviau valdyti darbo eigą Git.

Neįsipareigotų pakeitimų perkėlimas į naują Git filialą

Naudojant Git komandinę eilutę

# Step 1: Create a new branch and switch to it
git checkout -b new-feature-branch

# Step 2: Stage all uncommitted changes
git add .

# Step 3: Commit the staged changes
git commit -m "Move uncommitted work to new feature branch"

# Step 4: Switch back to the original branch
git checkout original-branch

# Step 5: Reset the original branch to the previous commit
git reset --hard HEAD~1

Darbo perkėlimas į naują filialą išsaugant pažangą

„Shell“ scenarijaus naudojimas automatizavimui

#!/bin/bash

# Check if the user provided a branch name
if [ -z "$1" ]; then
  echo "Usage: $0 <new-branch-name>"
  exit 1
fi

NEW_BRANCH=$1

# Create and switch to the new branch
git checkout -b $NEW_BRANCH

# Stage all uncommitted changes
git add .

# Commit the changes
git commit -m "Move uncommitted work to $NEW_BRANCH"

# Switch back to the original branch
git checkout -

# Reset the original branch
git reset --hard HEAD~1

„Git“ funkcijų filialų kūrimas ir valdymas

Dirbant su „Git“ svarbu sutvarkyti darbo eigą, ypač kuriant naujas funkcijas. Geriausia praktika yra naudoti funkcijų šakas. Funkcijos šaka leidžia dirbti su nauja funkcija nepriklausomai nuo pagrindinės kodų bazės. Ši izoliacija padeda išvengti nebaigto ar nestabilaus kodo poveikio pagrindinei šakai. Norėdami sukurti funkcijų šaką, naudokite komandą git checkout -b feature-branch. Taip ne tik sukuriamas filialas, bet ir perjungiamas į jį, užtikrinant, kad bet koks naujas darbas būtų atliktas tinkamame kontekste.

Sukūrę funkcijų šaką, galite dirbti su nauja funkcija nepaveikdami pagrindinio atšakos. Tai ypač naudinga bendradarbiavimo aplinkoje, kai keli kūrėjai vienu metu dirba su skirtingomis funkcijomis. Kai funkcija bus baigta ir nuodugniai išbandyta, galite ją vėl sujungti į pagrindinę šaką naudodami git merge feature-branch. Tokiu būdu pagrindinėje šakoje yra tik stabilus ir pilnas kodas. Jei reikia atnaujinti savo funkcijų šaką naujausiais pagrindinės šakos pakeitimais, galite naudoti git rebase main būdami savo funkcijų šakoje, užtikrindami, kad ji būtų atnaujinta.

Dažnai užduodami klausimai apie „Git“ filialo valdymą

  1. Kas yra funkcijų šaka?
  2. Funkcijų šaka yra atskira šaka, sukurta sukurti naują funkciją nepriklausomai nuo pagrindinės kodų bazės.
  3. Kaip sukurti naują filialą „Git“?
  4. Galite sukurti naują filialą naudodami git checkout -b branch-name.
  5. Kaip perjungti „Git“ filialus?
  6. Naudokite git checkout branch-name pereiti prie esamo filialo.
  7. Kaip sujungti funkcijų šaką atgal į pagrindinę šaką?
  8. Norėdami sujungti funkcijų šaką, perjunkite į pagrindinę šaką ir naudokite git merge feature-branch.
  9. Kaip atnaujinti savo funkcijų šaką naujausiais pagrindinės šakos pakeitimais?
  10. Būdami savo funkcijų šakoje, naudokite git rebase main įtraukti naujausius pakeitimus.
  11. Ką daryti, jei sujungęs noriu ištrinti filialą?
  12. Filialą galite ištrinti naudodami git branch -d branch-name.
  13. Kaip išvardyti visas savo saugyklos šakas?
  14. Naudokite git branch išvardyti visas šakas.
  15. Ar galiu pervardyti filialą „Git“?
  16. Taip, naudoti git branch -m old-name new-name pervadinti filialą.
  17. Kaip patikrinti, kuriame filiale šiuo metu dirbu?
  18. Naudokite git status arba git branch norėdami pamatyti dabartinę šaką.
  19. Kas nutiks, jei bandysiu sujungti filialą su konfliktais?
  20. Prieš užbaigiant sujungimą, „Git“ paragins jus išspręsti konfliktus. Naudokite git status norėdami pamatyti nesuderinamus failus ir atitinkamai juos redaguoti.

Paskutinės mintys:

Neįpareigoto darbo perkėlimas į naują Git filialą yra vertingas būdas palaikyti organizuotą ir švarią kūrimo darbo eigą. Naudodami pateiktas komandas ir scenarijus galite lengvai sukurti naują savo funkcijos šaką, atlikti pakeitimus ir iš naujo nustatyti esamą šaką. Šis metodas ne tik išsaugo jūsų pažangą, bet ir išlaiko pagrindinę šaką stabilią ir be nepilnų funkcijų. Šios praktikos pritaikymas padidins jūsų produktyvumą ir palengvins geresnį komandos narių bendradarbiavimą.