Prijenos neizvršenih promjena u novu Git granu

Prijenos neizvršenih promjena u novu Git granu
Prijenos neizvršenih promjena u novu Git granu

Otvaranje nove podružnice za vaš neobavezan posao

Prilikom razvoja novih značajki, uobičajeno je shvatiti da bi promjene trebale biti izolirane u vlastitoj grani. To omogućuje bolju organizaciju i paralelni razvoj. Ako ste započeli raditi na novoj značajci i na pola puta odlučili da ona treba biti u zasebnoj grani, Git pruža jednostavan način za prijenos tih nepodvrgnutih promjena.

U ovom članku ćemo vas voditi kroz proces premještanja vašeg postojećeg, neobvezenog posla u novu podružnicu. Osim toga, naučit ćete kako resetirati svoju trenutnu granu bez gubitka bilo kakvog napretka. To osigurava da vaš tijek rada ostane čist i učinkovit.

Naredba Opis
git checkout -b <branch-name> Stvara novu granu i prelazi na nju.
git add . Određuje sve neizvršene promjene u radnom direktoriju.
git commit -m "message" Uređuje postupne promjene s opisnom porukom.
git checkout - Vraća se na prethodno odjavljenu poslovnicu.
git reset --hard HEAD~1 Resetira trenutnu granu na prethodnu predaju, odbacujući promjene.
#!/bin/bash Određuje da se skripta treba pokrenuti u bash ljusci.

Razumijevanje Git tijeka rada za upravljanje neobvezenim radom

U prvom primjeru skripte ručno premještamo neizvršene promjene u novu granu pomoću niza Git naredbi. Proces počinje s git checkout -b new-feature-branch, koji stvara novu granu pod nazivom "new-feature-branch" i prebacuje se na nju. Ovo je bitno za izolaciju rada nove značajke od glavne grane. Zatim postavljamo sve neizvršene promjene s git add .. Ova naredba osigurava da su sve modificirane i nove datoteke pripremljene za predaju. Nakon toga, git commit -m "Move uncommitted work to new feature branch" naredba upisuje ove promjene u novu granu s porukom koja objašnjava radnju.

Nakon što osiguramo promjene u novoj grani, vraćamo se na originalnu granu s git checkout original-branch. Za resetiranje izvorne grane u prethodno stanje koristimo git reset --hard HEAD~1. Ova naredba nasilno vraća granu na prethodnu predaju, odbacujući sve promjene napravljene od tada. Ovaj niz naredbi osigurava da se rad na novoj značajki sačuva u vlastitoj grani dok se originalna grana vraća u čisto stanje.

Automatiziranje procesa pomoću Shell skripte

Drugi primjer skripte automatizira ovaj proces pomoću skripte ljuske. Skripta počinje provjerom je li dano novo ime grane if [ -z "$1" ]; then, koji izlazi iz skripte ako nije navedeno ime. Varijabla NEW_BRANCH=$1 dodjeljuje dani naziv grane varijabli. Skripta zatim stvara i prebacuje se na ovu novu granu s git checkout -b $NEW_BRANCH. Sve neizvršene promjene postavljaju se pomoću git add ., i počinio sa git commit -m "Move uncommitted work to $NEW_BRANCH".

Nakon izvršenja promjena, skripta se vraća na prethodnu granu pomoću git checkout -. Konačna naredba git reset --hard HEAD~1 vraća izvornu granu na njezinu prethodnu predaju, osiguravajući da je čista i bez promjena koje su premještene u novu granu. Ova skripta ljuske pruža prikladan način za automatiziranje procesa premještanja neobvezenog posla u novu granu i ponovnog postavljanja trenutne grane, što olakšava upravljanje vašim tijek rada u Gitu.

Premještanje neizvršenih promjena u novu granu u Gitu

Korištenje Git naredbenog retka

# 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

Prijenos posla u novu podružnicu uz očuvanje napretka

Korištenje Shell skripte za automatizaciju

#!/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

Stvaranje grana značajki i upravljanje njima u Gitu

Kada radite s Gitom, važno je održavati tijek rada organiziranim, posebno kada razvijate nove značajke. Jedna od najboljih praksi je korištenje značajnih grana. Grana značajke omogućuje vam rad na novoj značajci neovisno o glavnoj bazi koda. Ova izolacija pomaže spriječiti da nedovršeni ili nestabilni kod utječe na glavnu granu. Da biste stvorili granu značajke, koristite naredbu git checkout -b feature-branch. Ovo ne samo da stvara granu, već vas također prebacuje na nju, osiguravajući da se novi posao obavlja u ispravnom kontekstu.

Nakon što ste kreirali granu značajke, možete raditi na novoj značajci bez utjecaja na glavnu granu. Ovo je posebno korisno u okruženju za suradnju gdje više programera istovremeno radi na različitim značajkama. Kada je vaša značajka dovršena i temeljito testirana, možete je spojiti natrag u glavnu granu pomoću git merge feature-branch. Na ovaj način glavna grana sadrži samo stabilan i potpun kod. Ako trebate ažurirati granu značajke s najnovijim promjenama iz glavne grane, možete koristiti git rebase main dok ste na grani značajki, osiguravajući da je ažurirana.

Često postavljana pitanja o Git Branch Managementu

  1. Što je grana značajke?
  2. Grana značajke je zasebna grana stvorena za razvoj nove značajke neovisno o glavnoj bazi koda.
  3. Kako mogu stvoriti novu granu u Gitu?
  4. Možete stvoriti novu granu pomoću git checkout -b branch-name.
  5. Kako se prebacivati ​​između grana u Gitu?
  6. Koristiti git checkout branch-name za prelazak na postojeću podružnicu.
  7. Kako mogu spojiti granu značajke natrag u glavnu granu?
  8. Za spajanje značajke grane, prebacite se na glavnu granu i koristite git merge feature-branch.
  9. Kako mogu ažurirati svoju granu značajki najnovijim promjenama iz glavne grane?
  10. Dok ste na grani značajki, koristite git rebase main uključiti najnovije promjene.
  11. Što ako želim obrisati granu nakon spajanja?
  12. Granu možete izbrisati pomoću git branch -d branch-name.
  13. Kako mogu ispisati sve grane u svom repozitoriju?
  14. Koristiti git branch za popis svih grana.
  15. Mogu li preimenovati granu u Gitu?
  16. Da, koristiti git branch -m old-name new-name za preimenovanje grane.
  17. Kako mogu provjeriti u kojoj sam grani trenutno?
  18. Koristiti git status ili git branch da vidite trenutnu granu.
  19. Što se događa ako pokušam spojiti granu sa sukobima?
  20. Git će od vas tražiti da riješite sukobe prije dovršetka spajanja. Koristiti git status da biste vidjeli datoteke s sukobima i uredili ih u skladu s tim.

Završne misli:

Premještanje neobvezenog posla u novu granu u Gitu vrijedna je tehnika za održavanje organiziranog i čistog tijeka razvoja. Korištenjem ponuđenih naredbi i skripti možete jednostavno stvoriti novu granu za svoju značajku, izvršiti svoje promjene i resetirati trenutnu granu. Ovaj pristup ne samo da čuva vaš napredak, već i održava vašu glavnu granu stabilnom i bez nepotpunih značajki. Usvajanje ovih praksi povećat će vašu produktivnost i olakšati bolju suradnju među članovima tima.