Kiedy jest odpowiedni czas, aby usunąć gałąź funkcji git?
Nie chcę skończyć z 82 gałęziami funkcji wiszącymi wokół , więc zastanawiam się, jakie są potencjalne wady po prostu usunięcia gałęzi funkcji, gdy tylko połączę ją z master.
Workflow:
git co -b feat-xyz
hack hack
git ci
hack some more
git ci
git co master
git merge feat-xyz
smoke test
git br -d feat-xyz
Jakieś problemy? 5 answers
Usuń po połączeniu jest zwykłym sposobem. Dlatego git branch -d
sprawdza, czy gałąź jest w pełni scalona, zanim zostanie usunięta.
Jest kilka powodów, dla których mogę wymyślić, aby utrzymać gałąź: możesz chcieć ją zatrzymać na wypadek, gdybyś miał błędy powracające, gdy trafi do produkcji, lub możesz chcieć historycznego rekordu.
W każdym z tych przypadków, masz możliwość tagowania nagłówka gałęzi przed jej usunięciem. Znacznik jest jak gałąź, ponieważ jest wskaźnikiem do commita, z wyjątkiem kilku drobnych różnic: 1) porcelain zazwyczaj nie wyświetla znaczników w poleceniach rozpoznawczych, takich jak git show-branch lub tab-auto complete w checkout, 2) sprawdzanie jednego z nich umieszcza cię w oddzielonej (nie-ref) głowicy 3) możesz zostawić "wiadomość tagowania", co powoduje, że znacznik zostanie zapisany jako obiekt w magazynie obiektów, tak jak commit.
W ten sposób zachowujesz historię, a jeśli kiedykolwiek będziesz musiał naprawić błąd, polecam po prostu utworzenie nowej gałęzi z master dla napraw.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-17 15:17:25
Usuwam po scaleniu, ale zawsze robię git merge --no-ff
, aby uniknąć szybkiego przekazywania, aby Historia gałęzi była widoczna na wykresie. Lubię mieć historię, gdzie gałąź fabularna odeszła od gałęzi deweloperskiej i gdzie się połączyła: {]}
Jest to zaczerpnięte z udanego modelu rozgałęziania Gita autorstwa Vincenta Driessena, bardzo przyjemnego przepływu pracy do wykorzystania z Gitem, który aplikuję do większości moich projektów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-07 14:31:05
Mogę wymyślić dwa powody, dla których możesz chcieć zachować gałąź funkcji przez jakiś czas:
- jest szansa, że zostanie wyrzucony z powrotem do pracy przez upstream.
- inni deweloperzy prawdopodobnie chcą tej funkcji, nie chcąc wszystkiego innego w master.
W praktyce, większość czasu kasowanie po połączeniu jest w porządku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-02 23:29:55
Typowy przepływ pracy będzie
// Create new branch
$ git checkout -b myfeature
// and then do some changes and commit them
// Switch to master branch
$ git checkout master
// Merge myfeature to master. --no-ff will always keep branch information.
$ git merge --no-ff myfeature
// Delete myfeature branch
$ git branch -d myfeature
// Push the changes
$ git push origin master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-13 17:01:10
Myślę, że jest to typowy przepływ pracy (usuwanie po połączeniu)
Edytuj Więc zamiast scalać, przynajmniej dla krótkotrwałych gałęzi, myślę, że chodzi o to, aby przełożyć je na master. następnie kończy się liniowa historia zmian, a cała gałąź staje się częścią głównego pnia. w tym przypadku masz tam wszystkie zmiany, więc najwyraźniej nie potrzebujesz kopii.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-02 23:09:37