Чи можу я зробити наступне простішим способом?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Чи можу я зробити наступне простішим способом?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Відповіді:
Як згадується у відповіді KindDragon , ви можете відтворити master
безпосередньо за origin/master
допомогою:
git checkout -B master origin/master
Сторінка git checkout
чоловіка згадує:
Якщо -B
дано, <new_branch>
створюється, якщо його не існує; в іншому випадку вона скидається . Це транзакційний еквівалент
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Спочатку запропоновано:
Щось на зразок:
$ 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
з кроком 2 необов’язковим.
Git підтримує цю команду:
git checkout -B master origin/master
Ознайомтеся з origin/master
гілкою, а потім скиньте master
гілку там.
git fetch origin master
раніше, щоб переконатися origin/master
, що оновлення?
git fetch
спочатку
Я думаю, що навіть відповідь VonC має складність порівняно з цим варіантом:
git update-ref refs/heads/master origin/master
git reset --hard master
git автоматично реєструє кожне значення ref (через рефлог). Тож після запуску цієї команди, тоді master@{1}
посилається на попереднє значення master.
Відповідь VonC правильна, але він витрачає час на перевірку старого значення master у файловій системі.
Якщо ви дбаєте про осиротілі предмети в репо, то можете бігти git gc
Already on 'master'
Якщо ви вже є, master
ви можете зробити наступне:
git reset --hard origin/master
Він вкаже локальну master
гілку на віддалений origin/master
та відкине будь-які зміни в робочому режимі.
git checkout -B master origin/master
?