2012-11-21 15 views
8

wersja skróconaZrób oddział git równa opanować ponownie

Jaki jest najprostszy sposób, aby oddział równą master ponownie, odrzucając jakiekolwiek różnice? Do tej pory użyłem po prostu git branch -D wip, a następnie git checkout -b wip, ale wydaje się to nieco głupie.

Motywacja

I często mają wip oddział obok mojego master oddziału, dla 'work in progress'. Czasami praca nad taką gałęzią zostaje "pozostawiona" i kiedy ją ponownie odkrywam, okazuje się, że już jej nie potrzebuję. Odkrycie to często ma miejsce, gdy chcę korzystać z oddziału do przechowywania nowego zestawu "praca w toku" i stwierdzam, że po prostu chcę odrzucić wszelkie różnice z master, aby nowe "prace w toku" pasowały do ​​najwyższych. Rozszyfrowanie różnic nie jest warte problemów: rozwiązanie opisane powyżej działa dobrze dla mnie. Jakieś lepsze rozwiązania dotyczące tego przypadku użycia?

Odpowiedz

7

Jeśli naprawdę chcesz, aby zdmuchnąć poprzedni oddział o tej nazwie, a także tworzyć nowe można po prostu użyć:

git checkout -B wip master 

Korzystanie wersję kapitału zamiast -b spowoduje git, aby przełączyć się do wskazanego gałęzi i zresetuj go do nowego punktu początkowego, nazwanego jako ostatni argument. Jeśli aktualnie znajdujesz się w pożądanym punkcie początkowym, możesz pominąć ostatni argument (master), domyślnie użyjemy HEAD.

10

próbować ten jeden w swojej branży:

git reset --hard master 

uczyni Twój oddział identyczne do opanowania, usunąć wszystkie zobowiązuje można zrobić, i wyrzucić wszystkie pliki w obszarze pomostowym.

+0

Gdy pojawia się ten przypadek użycia, zwykle zlecam niezakończoną pracę. W tym momencie często nie mogę wykupić gałęzi 'wip', ponieważ powoduje to' error: Twoje lokalne zmiany do następujących plików zostaną nadpisane przez kasę: '. Oczywiście mogę zlecić moją pracę na 'master', a następnie sprawdzić' wip', następnie 'git reset --hard master', a następnie sprawdzić' master' i 'reset --hard HEAD ^', ale to nie jest krótsze niż niszczenie oddziału i stworzenie nowego. – Confusion

+0

Dlaczego jesteś mistrzem, jeśli pracujesz na wip? – Intrepidd

+1

Możesz uniknąć popełniania w takich sytuacjach, używając 'git stash', aby zapisać swoje zmiany, a następnie' git stash pop', aby je przywrócić. – jszakmeister