Некоторые вещи на отдельную статью не тянут, поэтому буду их публиковать не по графику.
#git #terminal #hint
Удаляем все локальные ветки
(кроме dev, develop, master, main)
1) Переходим в терминале в папку с проектом
2) Проверяем, чтобы в команде были указаны ветки, которые нельзя удалять (по аналогии с dev, develop, master и main)
3) Запускаем команду
#git #terminal #hint
Удаляем все локальные ветки
(кроме dev, develop, master, main)
1) Переходим в терминале в папку с проектом
2) Проверяем, чтобы в команде были указаны ветки, которые нельзя удалять (по аналогии с dev, develop, master и main)
3) Запускаем команду
cd myProject
git branch | grep -v "dev" | grep -v "develop" | grep -v "master" | grep -v "main" | xargs git branch -D
👍2❤1
#terminal #simulator #hint
Очистить симуляторы
Иногда бывает нужно сделать очистку, чтобы избавиться от нерабочих симуляторов.
Такое может происходить при обновлении версии Xcode или Mac OS.
Если не очистить симуляторы, то могут вылезать непонятные ошибки типа "Не удалось запустить симулятор" без понятных причин, а при создании нового симулятора старый никуда не денется и будет занимать место.
Что делаем:
1. Закрываем симуляторы и Xcode (прямо через command + Q)
2. Выполняем команды в терминале:
Очистить симуляторы
Иногда бывает нужно сделать очистку, чтобы избавиться от нерабочих симуляторов.
Такое может происходить при обновлении версии Xcode или Mac OS.
Если не очистить симуляторы, то могут вылезать непонятные ошибки типа "Не удалось запустить симулятор" без понятных причин, а при создании нового симулятора старый никуда не денется и будет занимать место.
Что делаем:
1. Закрываем симуляторы и Xcode (прямо через command + Q)
2. Выполняем команды в терминале:
xcrun simctl shutdown all && xcrun simctl erase all
xcrun simctl --set previews delete all
🔥2
#terminal #xcode #fix #simulator #hint
Запускаю симулятор в Xcode и вижу такую ошибку, хотя вчера все отлично работало 🤦♂️
Мне помогла команда в терминале:
Запускаю симулятор в Xcode и вижу такую ошибку, хотя вчера все отлично работало 🤦♂️
Мне помогла команда в терминале:
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorServicesudo killall -9 com.apple.CoreSimulator.CoreSimulatorService
❤5🔥2🤣2
#git #terminal #hint #gitignore
Бывает, в гит запушили файл, которого там не должно быть, а потом добавили его в
Чтобы файл корректно удалился из гита с учетом новых правил игнора, достаточно выполнить эти две команды в терминале в папке с проектом:
Пояснение:
- первая команда говорит гиту перестать отслеживать все файлы в проекте, но не удалять их с диска
- вторая команда снова добавляет все файлы и изменения в список для включения в следующий коммит, но теперь уже с учётом
- остается только сделать коммит/пуш с изменениями 👌
Для экспертов по гиту:
Знаю, что можно проделать операции только с нужным файлом, а не со всеми сразу, но мне удобнее так, и вдруг кому-то тоже 😉
Бывает, в гит запушили файл, которого там не должно быть, а потом добавили его в
.gitignore
. Но файл уже находится в гите, и его нужно оттуда удалить.Чтобы файл корректно удалился из гита с учетом новых правил игнора, достаточно выполнить эти две команды в терминале в папке с проектом:
git rm -rf --cached .
git add .
Пояснение:
- первая команда говорит гиту перестать отслеживать все файлы в проекте, но не удалять их с диска
- вторая команда снова добавляет все файлы и изменения в список для включения в следующий коммит, но теперь уже с учётом
.gitignore
(то есть файлы, которые вы исключили, не попадут в список)- остается только сделать коммит/пуш с изменениями 👌
Для экспертов по гиту:
Знаю, что можно проделать операции только с нужным файлом, а не со всеми сразу, но мне удобнее так, и вдруг кому-то тоже 😉
❤5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#terminal #simulator #hint
По умолчанию нажатия на экране iOS-симулятора не отображаются, но это легко поправить командой в терминале:
После выполнения команды нужно перезагрузить симулятор и нажатия будут отображаться.
Важный нюанс: если включить запись экрана симулятора через кнопку
Нажатия будет видно только при записи экрана самого мака (видео можно обрезать, чтобы было похоже на запись через
По умолчанию нажатия на экране iOS-симулятора не отображаются, но это легко поправить командой в терминале:
defaults write com.apple.iphonesimulator ShowSingleTouches 1
После выполнения команды нужно перезагрузить симулятор и нажатия будут отображаться.
Важный нюанс: если включить запись экрана симулятора через кнопку
Record Screen
в самом симуляторе, то в получившейся записи не будут видны эти нажатия.Нажатия будет видно только при записи экрана самого мака (видео можно обрезать, чтобы было похоже на запись через
Record Screen
)🔥7❤2🤔1
#terminal #git #hint
Бывает, что после выполнения задачи ветку удаляют в репозитории, а локально она все еще висит. И когда таких веток набирается много, можно в них запутаться 😅
Чтобы удалить разом все такие ветки, нужно перейти в терминале в папку с проектом и выполнить команду:
Объяснение:
•
•
• Для каждой ветки проверяется, существует ли она на сервере (
• Если ветка отсутствует на сервере, она удаляется принудительно (
Перед выполнением команды нужно убедиться, что вы переключились на ветку, которую не хотите удалять (например,
Бывает, что после выполнения задачи ветку удаляют в репозитории, а локально она все еще висит. И когда таких веток набирается много, можно в них запутаться 😅
Чтобы удалить разом все такие ветки, нужно перейти в терминале в папку с проектом и выполнить команду:
git branch | grep -v "^\*" | while read branch; do
if ! git show-ref --verify --quiet refs/remotes/origin/$branch; then
git branch -D $branch
fi
done
Объяснение:
•
git branch
выводит список всех локальных веток.•
grep -v "^\*"
исключает текущую активную ветку (чтобы не удалять её).• Для каждой ветки проверяется, существует ли она на сервере (
refs/remotes/origin/branch
).• Если ветка отсутствует на сервере, она удаляется принудительно (
git branch -D
), что удалит ветку даже если в ней есть несмерженные изменения.Перед выполнением команды нужно убедиться, что вы переключились на ветку, которую не хотите удалять (например,
main
или master
).👌5❤1
#terminal #bundler #rbenv #hint
Кто читал предыдущую статью про использование
И после перезапуска терминала не работают команды
При этом если выполнять команды из
Вот что нужно сделать, чтобы эти настройки не сбрасывались.
1. Выполните в терминале по очереди эти две команды:
2. Затем примените изменения командой:
3. Всё! Теперь
Это безопасно:
-
- Добавление строк в
- Все ваши проекты будут использовать именно ту версию
Если захотите убрать эти настройки, просто откройте файл
После этого сохраните файл и выполните:
Всё вернётся как было 👌
Кто читал предыдущую статью про использование
Makefile
, и при этом впервые применил эти команды, скорее всего после перезапуска терминала столкнулся с ошибкой типа такой:
Could not find ‘bundler’ (2.6.5) required by your Gemfile.lock. (Gem::GemNotFoundException)
И после перезапуска терминала не работают команды
bundle
*, например:
bundle exec fastlane
При этом если выполнять команды из
Makefile
, то такой ошибки нет, потому что внутри основных команд есть обертки для настройки окружения и прочих штук, которые сбрасываются после перезапуска терминала.Вот что нужно сделать, чтобы эти настройки не сбрасывались.
1. Выполните в терминале по очереди эти две команды:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
2. Затем примените изменения командой:
source ~/.zshrc
3. Всё! Теперь
rbenv
всегда будет работать автоматически, когда вы открываете терминал в папке проекта с файлом .ruby-version
.Это безопасно:
-
rbenv
специально разработан так, чтобы работать для каждого проекта отдельно, если в проекте есть файл .ruby-version
- Добавление строк в
~/.zshrc
просто включает автоматическое переключение версий Ruby
для каждого проекта, но не фиксирует какую-то одну версию Ruby
глобально- Все ваши проекты будут использовать именно ту версию
Ruby
, которая указана в их собственном .ruby-version
.Если захотите убрать эти настройки, просто откройте файл
~/.zshrc
(например, командой nano ~/.zshrc
или через Finder) и удалите строки:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
После этого сохраните файл и выполните:
source ~/.zshrc
Всё вернётся как было 👌
👌2❤1