Czy mogę wykonać następujące czynności w prostszy sposób?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Czy mogę wykonać następujące czynności w prostszy sposób?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Odpowiedzi:
Jak KindDragon „s odpowiedź wspomina, można odtworzyć master
bezpośrednio origin/master
z:
git checkout -B master origin/master
git checkout
Strona man wspomina:
Jeśli -B
podano, <new_branch>
jest tworzony, jeśli nie istnieje; w przeciwnym razie jest resetowany . Jest to transakcyjny odpowiednik
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Pierwotnie sugerowane:
Coś jak:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
przy czym krok 2 jest opcjonalny.
Git obsługuje to polecenie:
git checkout -B master origin/master
Sprawdź origin/master
gałąź, a następnie zresetuj master
tam gałąź.
git fetch origin master
wcześniej, aby mieć pewność, że origin/master
jest aktualizowany?
git fetch
najpierw
Myślę, że nawet odpowiedź VonC ma złożoność w porównaniu z tą opcją:
git update-ref refs/heads/master origin/master
git reset --hard master
git automatycznie rejestruje każdą wartość ref (poprzez reflog). Więc po uruchomieniu tej komendy master@{1}
odnosi się do poprzedniej wartości master.
Odpowiedź VonC jest poprawna, ale marnuje czas na sprawdzanie starej wartości master w systemie plików.
Jeśli zależy Ci na osieroconych obiektach w repozytorium, możesz uruchomić git gc
Already on 'master'
Jeśli jesteś już włączony master
, możesz wykonać następujące czynności:
git reset --hard origin/master
Wskaże master
oddział lokalny na pilota origin/master
i odrzuci wszelkie modyfikacje działającego katalogu.
git checkout -B master origin/master
?