Toolverse
All skills

git-advanced-workflows

by wshobson

Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
wshobson
Category
DevOps
Views
91

About this skill

Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.

How to use

  1. Zainstaluj skill w swoim środowisku agenta, dodając go do konfiguracji narzędzi deweloperskich.

  2. Aby wyczyścić historię commitów przed mergem, użyj interaktywnego rebasu: uruchom git rebase -i HEAD~5 (dla ostatnich 5 commitów) lub git rebase -i $(git merge-base HEAD main) (dla wszystkich commitów na bieżącej gałęzi). W edytorze zmień operacje: pick aby zachować commit, reword aby zmienić wiadomość, squash aby połączyć z poprzednim commitem, fixup aby połączyć bez wiadomości, lub drop aby usunąć commit.

  3. Aby przenieść konkretne commity z jednej gałęzi na drugą bez mergowania całej gałęzi, użyj cherry-picka: git cherry-pick abc123 (pojedynczy commit), git cherry-pick abc123..def456 (zakres commitów), lub git cherry-pick -e abc123 (z możliwością edycji wiadomości).

  4. Aby znaleźć commit, który wprowadził bug, uruchom git bisect start, oznacz bieżący commit jako zły (git bisect bad), wskaż znany dobry commit (git bisect good abc123), a następnie Git będzie binarnie przeszukiwać historię — odpowiadaj git bisect bad lub git bisect good na każdym kroku aż do znalezienia problematycznego commita.

  5. Aby pracować nad wieloma funkcjami jednocześnie bez przełączania gałęzi, użyj worktrees: git worktree add ../feature-branch feature-name tworzy osobny katalog roboczy dla nowej gałęzi, pozwalając pracować równolegle.

  6. Aby odzyskać utracone commity lub zmiany, sprawdź reflog: git reflog pokazuje historię zmian HEAD, a git checkout abc123 lub git reset abc123 przywraca utracone dane.

Related skills