Я начал сотрудничать с несколькими друзьями по проекту, и они используют хранилище heroku git.
Я клонировал репозиторий несколько дней назад, и с тех пор они внесли некоторые изменения, поэтому я пытаюсь получить последние обновления
Я выполнил git pull --rebase
команду, как указано здесь (это правильный способ сделать это?): Https://devcenter.heroku.com/articles/sharing#merging-code-changes
Я получаю следующую ошибку:
$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Я предполагаю, что я возился с кодом, и теперь он хочет, чтобы я либо зафиксировал, либо отклонил (это означает, что значит stash?) Изменения. Это то, что происходит? Если это так, я бы хотел отменить все внесенные мной изменения и просто получить обновленный код из репозитория git.
Есть идеи, что я могу сделать?
git push -f
Если вы хотите сохранить ваши рабочие изменения при выполнении ребазинга, вы можете использовать
--autostash
. Из документации :Например:
источник
git config --global rebase.autoStash true
Тогда вам не нужно пропускать переключатель.rebase.autostash
доступна в 2.6).git rebase --interactive
тоже отлично работает !Тяга с ребазом - это хорошая практика в целом.
Однако вы не можете сделать это, если ваш индекс не чистый, то есть вы внесли изменения, которые не были зафиксированы.
Вы можете сделать это, чтобы обойти, если вы хотите сохранить свои изменения:
git stash
git stash apply stash@{0}
или более простымgit stash pop
источник
git stash pop
можете применить последние сохраненные изменения и избежать запоминания дольшеapply stash@{0}
..bashrc
(или любомalias stashpull='git stash; git pull; git stash pop'
Сначала начните с
git status
Посмотрите, есть ли у вас ожидающие изменения. Чтобы отбросить их, беги
источник
Это работает для меня:
источник
Вы всегда можете сделать
и вы либо не получите (а) никаких изменений, если у вас есть незафиксированные изменения, которые конфликтуют с вышестоящими изменениями, либо (б) тот же эффект, что и у stash / pull / apply: ребаз, чтобы поставить вас на последние изменения из HEAD, и ваши незафиксированные изменения остались как есть.
источник
Когда неустановленное изменение происходит из-за того, что git пытается исправить условные обозначения eol в файле (как всегда в моем случае), никакое сохранение или извлечение или сброс не заставит его исчезнуть.
Однако, если цель является действительно перебазироваться и игнорировать unstaged изменилось, то , что я делаю , это удалить ветвь локально затем проверить его снова.
Вуаля! Это еще не подвело меня.
источник
Если вы хотите автоматически сохранить ваши изменения и распаковать их при каждой перезагрузке, вы можете сделать это:
источник
--autostash
когда это может быть просто ... автоматически?