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ć masterbezpośrednio origin/masterz:
git checkout -B master origin/master
git checkoutStrona man wspomina:
Jeśli -Bpodano, <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/mastergałąź, a następnie zresetuj mastertam gałąź.
git fetch origin masterwcześniej, aby mieć pewność, że origin/masterjest aktualizowany?
git fetchnajpierw
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 masteroddział lokalny na pilota origin/masteri odrzuci wszelkie modyfikacje działającego katalogu.
git checkout -B master origin/master?