Wystarczy:
git clone $url
Poważnie! To najlepszy sposób.
Można wykonać wiele różnych poleceń, aby przenieść referencje, ale jedynym celem byłoby utrzymanie twoich zatwierdzeń gdzieś w lokalnym repozytorium, aby móc z nich skorzystać w przyszłości. Jeśli to jest celem, po prostu zachowaj całe repozytorium bez zmian i ponownie sklonuj pochodzenie.
Aby zaakceptować wszystkie zmiany na tylko jednej gałęzi, foo
:
git checkout foo
git fetch origin +refs/heads/foo:refs/remotes/origin/foo
git reset refs/remotes/origin/foo
foo
będzie teraz wskazywać na ten sam popełnić jak foo
na origin
. Jeśli chcesz zdmuchnąć pliki z katalogu roboczego, dodaj --hard
do git reset
. Jeśli chcesz najpierw scalić, zamień fetch
na pull
.
Być może w lokalnym repozytorium pojawiło się kilka zwiastunów, których git może kiedyś się oczyścić, ale przez jakiś czas nadal będzie można uzyskać do nich dostęp za pośrednictwem rejestru.
Dobrze wiedzieć :-) –
Istnieje ogromny problem z tym: Mam wiele * dodatków * do drzewa roboczego. Chcę tylko zaakceptować/zastosować wszystkie zmiany, które zostały wprowadzone w pilocie. Nie chcę wyrzucać całego stanu mojej obecnej pracy. To nie działa jako odpowiedź dla mnie. – rfay
@Randy, To inne pytanie, ale dobre. – cdunn2001