Może istnieć więcej niż jeden sposób zadawania tego pytania, więc oto opis problemu. Pracowałem nad mistrzem i wykonałem kilka rzeczy, a potem zdecydowałem, że chcę wstrzymać tę pracę. Zrobiłem kopię zapasową kilku zatwierdzeń, a następnie rozgałęziłem się, zanim zacząłem moją bzdurną pracę. Praktycznie to działa dobrze, właśnie teraz mam inną gałąź jako moją główną gałąź rozwoju. Zastanawiam się, jak mógłbym coś zmienić, więc znowu pracuję nad mistrzem, ale nie ma on mojej śmieciowej pracy i powiedziałem, że praca jest na innej gałęzi.
Można to zadać / rozwiązać na kilka sposobów: Jak zmienić nazwę mojej gałęzi master na inną, a następnie zmienić nazwę innej na master? Jak utworzyć kopię zapasową mastera, a następnie sprawić, by wszystkie zmiany, których kopie zapasowe utworzyłem, znajdowały się w innej gałęzi?
Dzięki za wszystkie (szybkie) odpowiedzi! Wszystkie są dobre.
[branch "crap_work"]
aby czytać,[branch "master"]
aby ten master nadal się zsynchronizowałorigin/master
. Oczywiście stan dwóch transakcji repo był taki, że nadal miało to sens.git push -uf origin master
igit push -u origin crap_work
.Myślę, że powinieneś rozważyć inną strategię rozwoju, aby zapobiec takim problemom. Wydaje się, że najlepiej dla mnie działa programowanie bezpośrednio w mojej głównej gałęzi. Niezależnie od zmian, które wprowadzam, zawsze tworzę nową gałąź dla nowego kodu:
Stamtąd mogę wypchnąć zmiany do repozytoriów publicznych:
lub ostatecznie po prostu połącz go z powrotem z moją gałęzią główną:
Jeśli naprawdę potrzebujesz cofnąć się do starszego punktu w czasie i ustawić go jako swój wzorzec, możesz zmienić nazwę bieżącej gałęzi na inną, a następnie wypróbować starszą wersję, aby była mistrzem:
źródło
Zacznij od
master
, utwórz gałąź o nazwiein-progress
, a następnie zresetujmaster
do wcześniejszego zatwierdzenia.źródło
To jest stosunkowo łatwe:
źródło
git checkout -b
tworzy gałąź i uaktywnia ją.Spowoduje to ustawienie twojego mistrza w dowolnym punkcie w jednym kroku:
źródło