Есть ли какая-либо команда git (или короткая последовательность команд), которая будет безопасно и уверенно делать следующее:
- избавиться от любых локальных изменений,
- при необходимости возьмем данную ветку из источника,
- проверить данную ветку?
В настоящее время я застрял:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
но это беспокоит меня, потому что меня спрашивают пароль два раза (через fetch
и pull
). Как правило, я был бы доволен любым решением, если пароль нужен только один раз.
Несколько примечаний:
- это часть развертывания homebrewed script для приложения (код размещен на GitHub),
- не должно быть разницы, если ветвь уже была извлечена из источника или нет (т.е. первое развертывание новой ветки не должно в идеале требовать каких-либо дополнительных шагов),
- script расположен на удаленной машине, к которой могут обращаться несколько человек, поэтому учетные данные не сохраняются и пользователь/пароль должны быть введены (но только один раз, если это возможно),
- Мне не нужны какие-либо локальные изменения, я всегда хочу нетронутую копию данной ветки (дальнейшая часть развертывания script создает локальные изменения),
- Я не могу клонировать или экспортировать свежий репозиторий каждый раз, это занимает слишком много времени.