Przenoszenie niezatwierdzonych zmian do nowej gałęzi Git

Przenoszenie niezatwierdzonych zmian do nowej gałęzi Git
Przenoszenie niezatwierdzonych zmian do nowej gałęzi Git

Zakładanie nowego oddziału dla Twojej niezaangażowanej pracy

Podczas opracowywania nowych funkcji często zdajemy sobie sprawę, że zmiany powinny być izolowane w osobnej gałęzi. Pozwala to na lepszą organizację i równoległy rozwój. Jeśli zacząłeś pracować nad nową funkcją i w połowie zdecydowałeś, że powinna ona znajdować się w osobnej gałęzi, Git zapewnia prosty sposób przeniesienia niezatwierdzonych zmian.

W tym artykule przeprowadzimy Cię przez proces przenoszenia Twojej dotychczasowej, niezaangażowanej pracy do nowego oddziału. Dodatkowo dowiesz się jak zresetować swoją obecną gałąź, nie tracąc przy tym żadnych postępów. Dzięki temu przepływ pracy pozostanie czysty i wydajny.

Komenda Opis
git checkout -b <branch-name> Tworzy nową gałąź i przełącza się do niej.
git add . Etapuje wszystkie niezatwierdzone zmiany w katalogu roboczym.
git commit -m "message" Zatwierdza etapowe zmiany z komunikatem opisowym.
git checkout - Przełącza z powrotem do poprzednio wyewidencjonowanej gałęzi.
git reset --hard HEAD~1 Resetuje bieżącą gałąź do poprzedniego zatwierdzenia, odrzucając zmiany.
#!/bin/bash Określa, że ​​skrypt powinien zostać uruchomiony w powłoce bash.

Zrozumienie przepływu pracy Git do zarządzania niezatwierdzoną pracą

W pierwszym przykładzie skryptu ręcznie przenosimy niezatwierdzone zmiany do nowej gałęzi za pomocą serii poleceń Git. Proces rozpoczyna się od git checkout -b new-feature-branch, który tworzy nową gałąź o nazwie „new-feature-branch” i przełącza się na nią. Jest to niezbędne do odizolowania działania nowej funkcji od głównej gałęzi. Następnie przygotowujemy wszystkie niezatwierdzone zmiany za pomocą git add .. To polecenie zapewnia, że ​​wszystkie zmodyfikowane i nowe pliki są przygotowane do zatwierdzenia. W następstwie tego, git commit -m "Move uncommitted work to new feature branch" polecenie zatwierdza te zmiany w nowej gałęzi z komunikatem wyjaśniającym akcję.

Po zabezpieczeniu zmian w nowym oddziale wracamy do pierwotnego oddziału z git checkout original-branch. Aby zresetować oryginalną gałąź do poprzedniego stanu, używamy git reset --hard HEAD~1. To polecenie wymusza resetowanie gałęzi do poprzedniego zatwierdzenia, odrzucając wszelkie zmiany wprowadzone od tego czasu. Ta seria poleceń gwarantuje, że prace nad nową funkcją zostaną zachowane w osobnej gałęzi, podczas gdy oryginalna gałąź zostanie zresetowana do stanu czystego.

Automatyzacja procesu za pomocą skryptu powłoki

Drugi przykład skryptu automatyzuje ten proces za pomocą skryptu powłoki. Skrypt rozpoczyna się od sprawdzenia, czy została podana nowa nazwa oddziału if [ -z "$1" ]; then, co powoduje wyjście ze skryptu, jeśli nie zostanie podana nazwa. Zmienna NEW_BRANCH=$1 przypisuje podaną nazwę gałęzi do zmiennej. Następnie skrypt tworzy i przełącza się do tej nowej gałęzi za pomocą git checkout -b $NEW_BRANCH. Wszystkie niezatwierdzone zmiany są przygotowywane przy użyciu git add .i zaangażowany z git commit -m "Move uncommitted work to $NEW_BRANCH".

Po zatwierdzeniu zmian skrypt przełącza się z powrotem do poprzedniej gałęzi za pomocą git checkout -. Ostateczne polecenie git reset --hard HEAD~1 resetuje oryginalną gałąź do poprzedniego zatwierdzenia, upewniając się, że jest czysta i wolna od zmian, które zostały przeniesione do nowej gałęzi. Ten skrypt powłoki zapewnia wygodny sposób automatyzacji procesu przenoszenia niezatwierdzonej pracy do nowej gałęzi i resetowania bieżącej gałęzi, ułatwiając zarządzanie przepływem pracy w Git.

Przenoszenie niezatwierdzonych zmian do nowej gałęzi w Git

Korzystanie z wiersza poleceń Git

# 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

Przeniesienie pracy do nowego oddziału przy jednoczesnym zachowaniu postępu

Używanie skryptu powłoki do automatyzacji

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

Tworzenie i zarządzanie gałęziami funkcji w Git

Podczas pracy z Git ważne jest, aby zachować porządek w przepływie pracy, szczególnie podczas opracowywania nowych funkcji. Jedną z najlepszych praktyk jest używanie gałęzi funkcji. Gałąź funkcji umożliwia pracę nad nową funkcją niezależnie od głównej bazy kodu. Ta izolacja pomaga zapobiec wpływowi niedokończonego lub niestabilnego kodu na główną gałąź. Aby utworzyć gałąź cech, użyj polecenia git checkout -b feature-branch. To nie tylko tworzy gałąź, ale także przełącza Cię do niej, zapewniając, że każda nowa praca zostanie wykonana we właściwym kontekście.

Po utworzeniu gałęzi funkcji możesz pracować nad nową funkcją bez wpływu na gałąź główną. Jest to szczególnie przydatne w środowisku współpracy, w którym wielu programistów pracuje jednocześnie nad różnymi funkcjami. Gdy funkcja będzie kompletna i dokładnie przetestowana, możesz połączyć ją z powrotem z gałęzią główną za pomocą git merge feature-branch. W ten sposób główna gałąź zawiera tylko stabilny i kompletny kod. Jeśli chcesz zaktualizować swoją gałąź funkcji o najnowsze zmiany z gałęzi głównej, możesz użyć git rebase main będąc w gałęzi funkcji, upewnij się, że jest ona aktualna.

Często zadawane pytania dotyczące zarządzania oddziałami Git

  1. Co to jest gałąź funkcji?
  2. Gałąź funkcji to osobna gałąź utworzona w celu opracowania nowej funkcji niezależnie od głównej bazy kodu.
  3. Jak utworzyć nowy oddział w Git?
  4. Możesz utworzyć nowy oddział za pomocą git checkout -b branch-name.
  5. Jak przełączać się między oddziałami w Git?
  6. Używać git checkout branch-name aby przejść do istniejącego oddziału.
  7. Jak scalić gałąź funkcji z powrotem z gałęzią główną?
  8. Aby scalić gałąź funkcji, przejdź do gałęzi głównej i użyj git merge feature-branch.
  9. Jak zaktualizować gałąź funkcji, dodając najnowsze zmiany z gałęzi głównej?
  10. Będąc w gałęzi funkcji, użyj git rebase main aby uwzględnić najnowsze zmiany.
  11. Co jeśli chcę usunąć oddział po fuzji?
  12. Możesz usunąć oddział za pomocą git branch -d branch-name.
  13. Jak wyświetlić listę wszystkich oddziałów w moim repozytorium?
  14. Używać git branch aby wyświetlić listę wszystkich oddziałów.
  15. Czy mogę zmienić nazwę oddziału w Git?
  16. Tak, użyj git branch -m old-name new-name aby zmienić nazwę oddziału.
  17. Jak sprawdzić, w którym oddziale aktualnie się znajduję?
  18. Używać git status Lub git branch aby zobaczyć bieżącą gałąź.
  19. Co się stanie, jeśli spróbuję połączyć gałąź z konfliktami?
  20. Git poprosi Cię o rozwiązanie konfliktów przed zakończeniem scalania. Używać git status aby zobaczyć pliki powodujące konflikty i odpowiednio je edytować.

Końcowe przemyślenia:

Przenoszenie niezatwierdzonej pracy do nowej gałęzi w Git to cenna technika pozwalająca utrzymać zorganizowany i czysty przepływ prac programistycznych. Korzystając z dostarczonych poleceń i skryptów, możesz łatwo utworzyć nową gałąź dla swojej funkcji, zatwierdzić zmiany i zresetować bieżącą gałąź. Takie podejście nie tylko chroni Twoje postępy, ale także sprawia, że ​​główna gałąź jest stabilna i wolna od niekompletnych funkcji. Zastosowanie tych praktyk zwiększy Twoją produktywność i ułatwi lepszą współpracę między członkami zespołu.