Jak przywrócić gałąź główną do upstream


145

Rozwidliłem repozytorium git i skonfigurowałem wcześniej. Zrobiłem kilka zmian w gałęzi Master, zobowiązałem się do przejścia na github.

Co powinienem teraz zrobić, aby porzucić wszystkie zmiany w gałęzi Master i uczynić ją identyczną z gałęzią główną wyższego rzędu?

Odpowiedzi:


277

(Zakładam, że zmiany, które chcesz teraz zignorować, dotyczą twojego originpilota, jesteś w swoim masteroddziale i chcesz wrócić do zawartości upstreampilota)

Po pierwsze, zresetuj kopię roboczą do nadrzędnego wzorca:

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

Następnie wepchnij tę nową gałąź do repozytorium pochodzenia, ignorując fakt, że nie będzie to szybkie przewijanie do przodu:

git push origin +master

14
Może być również konieczne uruchomienie, git remote add upstream <upstream_repo_url>jeśli rozgałęziłeś gałąź za pomocą GitHub.
Kato,

3
Jakie jest znaczenie +w git push origin +master? Czy to to samo, co sprawiedliwe git push origin master?
bluenote10

4
@ bluenote10 Nie są takie same. To +właśnie mówi gitowi, aby „[zignorował] fakt, że nie będzie to przewijanie do przodu”. To trochę jak robienie a git push --force, ale dotyczy tylko tego konkretnego odniesienia.
nickgrim

1
Nie działa dla mnie. Zrobiłem status git po tym, jak zawiera elementy, które zostały zmodyfikowane. Będę musiał wytrzeć i zacząć od nowa. Git jest niezwykle trudny do zrozumienia.
Mitch

1
@mehmet Nie, zmienia tylko gałąź, w której się znajdujesz.
Jan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.