2012-09-05 36 views
7

Załóżmy, że w naszym repozytorium Git przez jakiś czas pracowaliśmy w oddziale master. Wtedy większość z nas zaczęła działać w oddziale coolfeature, podczas gdy kilku deweloperów kontynuowało na master.Jak radzić sobie z nieciągłością Git?

Teraz deweloperzy, którzy pracowali nad master stracili zainteresowanie, a to, co rozwinęli od czasu rozwidlenia, nie jest bardzo ważne. Ale chcielibyśmy, aby główna gałąź rozwojowa ponownie nosiła nazwę master. Pojęciowo, chcielibyśmy, aby drzewo wyglądało mniej więcej tak:

*--master--X  ----master 
\    /
    --coolfeature-- 

Jaki jest najłatwiejszy sposób na osiągnięcie tego? Naprawdę nie chcemy próbować łączyć coolfeature i cieszymy się, że commit oznaczony jako X jest zupełnie bezsensowny.

+0

W takim przypadku warto używać funkcji przepływu pracy, która to umożliwia. Branża na obiekt jest tym, na co powinieneś patrzeć. Google "Branch-per-feature" i powinieneś wylądować na dogłębnym artykule o tym, jak zarządzać takim przepływem pracy. –

Odpowiedz

3

Wykonaj naciśnięcie siły w nowym oddziale głównym.

git push -f origin master 

Inni ludzie pobrać kod i wykonać reset

git fetch origin master 
git reset --hard origin/master 
+0

Jak zmienić nazwę "coolfeature" jako "master"? 'git branch -d master; git branch -m coolfeature master "? –

+1

Jest "przemianowywany" przez operację 'push': zatwierdzenie wskazane przez gałąź" master "w repozytorium pochodzenia jest ustawione na HEAD repo, w którym wykonywane jest' push'. – fork0

2

Sposób chciałbym to zrobić i uniknąć robi przymusowe przycisku:

  1. utworzyć znacznik dla popełnić X że nie obchodzi cię to. (Zobaczysz, dlaczego za chwilę.
  2. Wykonaj git revert wszystkich zatwierdzeń w gałęzi głównej, ponieważ rozgałęziłeś kohortę, co przywraca repozytorium do stanu, w którym znajdował się w momencie, w którym się rozwidliłeś, ale nie robi tego ". t przepisać historię, więc repozytorium niczyja zostanie uszkodzony, jeśli nie dostał notatkę.
  3. Merge coolfeature na pana.

Chodzi o tagowanie X jest zaznaczyć punkt, zanim nie wszystkie zmiany. tagi są tanie iw pewnym momencie możesz chcieć poznać punkt, w którym wycofałeś zatwierdzenia i wprowadziłeś taką zmianę.

Powiązane problemy