Задать вопрос
  • Как открыть вторую гит ветку в новом окне?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    IDE открывает не ветку, а копию её определённого состояния распакованную в рабочий каталог.
    Очевидно, что в один каталог вы не можете распаковать сразу две версии чтобы редактировать их в разных окнах.

    Но гит позволяет иметь несколько рабочих каталогов для одного репозитория, без клонирования самого репозитория. Не уверен, поддерживает ли JetBrains такой режим работы, это не совсем стандартное использование Git.
    Почитайте про multiple working trees
    Ответ написан
    Комментировать
  • В терминале Git Bash вылазит какой-то END и другое. Как убрать?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git хочет показать вам более одного экрана с информацией, для этого он вызывает стандартную программу пейджера Unix less. Просто введите q, чтобы вернуться в терминал, когда вы больше не хотите перемещаться по выходным данным.

    j перейти на одну строку вниз
    k переместиться на одну строку вверх
    space перейти на одну страницу вниз
    b перейти на одну страницу вверх
    h показать помощь
    / поиск вперёд
    ? поиск назад

    Если вы не хотите less, просто замените его другим пейджером в конфигурации. Если вам вообще не нужен пейджер, просто используйте cat:

    git config --global --add core.pager cat
    Ответ написан
    4 комментария
  • Как проверить ветку на актуальность с удаленным репозиторием?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    git fetch # предварительно скачать обновления
    git branch -vv #  показать список локальных веток 
    # в скобках покажет с какими вышестоящими ветками они связаны
    # если вышестоящая ветка удалена, то будет пометка gone
    git switch ветка # выборочно переключиться на ветку
    git status # посмотреть отставание от вышестоящей
    Ответ написан
    Комментировать
  • Как изменить имя компьютера показываемое в терминале?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    sudo scutil --set HostName mac
    Этого достаточно. Переустанавливать систему из-за такого пустяка точно не нужно ))
    После перезапуска терминала получим ruslan@mac ~ %
    Ответ написан
    4 комментария
  • Как правильно добавить в git-репозиторий папку выше по каталогу?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    В целом вы думаете правильно и рецепт сработает. После перемещения репозитория гит скажет что вы перенесли все файлы тем в подпапку и придётся создать коммит с этой операцией. Но хоть вы и будете видеть старую историю коммитов, воспользоваться ей будет сложно, так как пути поменялись.

    Правильней будет перед перемещением папки .git воспользоваться командой filter-repo, чтобы пересобрать заново все предыдущие коммиты так, как будто репозиторий изначально лежал в корне.

    Исходная структура папок
    public_html
    └── wp-content
        ├── plugins
        │   └── my_plugin
        └── themes
            └── child-theme
                └── .git

    Подготовим старый репозиторий к перемещению
    git filter-repo --to-subdirectory-filter wp-content/themes/child-theme

    Получим такую структуру
    public_html
    └── wp-content
        ├── plugins
        │   └── my_plugin
        └── themes
            └── child-theme
                ├── .git
                └── wp-content
                    └── themes
                        └── child-theme


    Затем перенесём папку .git и всё остальное содержимое папки child-theme в корень сайта.
    Ответ написан
    Комментировать
  • Как изменить имя группы пользователя, которая отображается в терминале Mac OS?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Это не имя группы, а название компьютера. Выполните команду:
    sudo scutil --set HostName MBP
    В новых окнах терминала будет уже новое имя.
    Ответ написан
  • Как отменить два последних комита без потери локальных изменений?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Очень просто. Вот один из способов.
    git reset --soft HEAD~2 # отменить два последних коммита
    # с опцией --soft состояние проекта в рабочем каталоге не изменится и ничего не потеряешь
    # и все локальные изменения после первого коммита автоматически поместятся в индекс
    git commit # создать коммит заново.


    В следующий раз вместо того, чтобы создавать дополнительный исправляющий коммит, просто пересоздавай предыдущий «плохой» коммит с помощью команды git commit --amend
    Ответ написан
    2 комментария
  • Ошибка при обновлении Android Studio. Как победить?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Попробуй обновиться используя JetBrains Toolbox для Android Studio.
    И вообще этот инструмент сильно облегчает жизнь.
    Ответ написан
    1 комментарий
  • Как сбросить пуши гит в Android Studio?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Делай осмысленные сообщения коммитов. Эти шифровки с датами тебя только запутают.

    Сам факт, что при push ты видишь много коммитов, не является ошибкой. Не надо пытаться это исправить.
    Это лишь признак того, что твоя ветка не основана на актуальном мастере изначально и в процессе работы подгружались обновления, либо ты баловался c push --force что равносильно пересборке ветки заново через rebase.
    После такого принудительного push, на других компах уже недостаточно обычного pull. Придётся сделать pull в режиме --rebase, иначе получится каша из коммитов.

    Советую для работы с самим репозиторием параллельно использовать нормальный Git-клиент, который наглядно показывает дерево коммитов. SmartGit идеален для этого. Так будет намного понятнее что происходит.
    Ответ написан
  • Самый простой бесплатный способ включить NTFS HDD на MacOS?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    macFUSE не имеет собственного драйвера NTFS а предлагает подгрузить NTFS-3G, который глючный и тормозной.

    Мне нравятся дрова от Paragon которые ставятся бесплатно в пробном режиме.

    А с небольшим хаком триал можно сделать вечным.
    1. Ставим 2027 год в настройках MacOS.
    2. Устанавливаем, запускаем Парагон, берем триал 10 дней и не перезагружаемся.
    3. Отключаем Парагон, закрываем его. Возвращаем год в сегодняшний.
    4. Перезагрузка.
    5. Триал теперь вечный.
    Ответ написан
    3 комментария
  • Сервер с ESXI 6 не видит более 20 USB флешек, в чем проблема?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Это ограничение самого хоста ESXi
    You can add up to 20 USB devices to a virtual machine, which is the maximum number of devices supported for a simultaneous connection to one virtual machine. The maximum number of USB devices supported on a single ESXi host for a simultaneous connection to one or more virtual machines is also 20.
    Ответ написан
    6 комментариев
  • Почему не удается запушить на Bitbucket?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Поправь ошибку в URL
    git remote set-url origin git@bitbucket.org:myacc/myproj.git

    Сообщение Permission denied сбивает с толку. Git при любой проблеме с передачей данных пишет Permission denied, хотя ошибка не в правах доступа, а в том, что Git просто не нашел репозиторий по указанному адресу. ...does not appear to be a git repository
    Ответ написан
    Комментировать
  • Как посмотреть адрес репозитория на bitbucket?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Коммитить можно только в локальный репозиторий, а во внешний репозиторий мы пушим.
    Ссылки на внешние репозитории показываются командой git remote -v
    Если в VSCode, то открой панель Source Control и выбери раздел Remotes. Там всё увидишь.
    Ответ написан
    Комментировать
  • Как связать ветки git?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    А чтобы связать ветки используется такая команда
    git branch --set-upstream-to=<внешний-репозиторий>/<внешняя-ветка> <локальная-ветка>

    ---------
    Но ты всё усложняешь. Если зачем-то вручную создал ветку, то и связь настроить придётся руками. Из вопроса не до конца понятно, что конкретно ты сделал. Предположу что ты клонировал на сервер свой репозиторий.
    git clone <URL>
    Такая команда автоматически создаст remote с именем origin в которой будет храниться URL вышестоящего репозитория, распакует главную ветку origin/main в локальную ветку main и сразу создаст связь между ними.

    Ты хочешь распаковать какую-то другую ветку и делаешь это сложным путем?
    git branch feature # создать пустую ветку с именем feature
    git switch feature # переключиться в эту новую ветку
    # но свежесозданная ветка не связана ни с какой внешней, поэтому следующей командой
    # придётся указать откуда и что скачивать
    git pull origin feature # влить внешнюю ветку origin/feature в текущую локальную ветку
    # но проще ветки сначала связать
    git  branch --set-upstream-to=origin/feature feature
    # и тогда заработает простой pull
    git pull

    Но тебе всё это не нужно на самом деле!
    Достаточно после клонирования просто написать
    git switch origin/feature

    Одна строчка сделает всё вышеперечисленное. Создаст локально ветку с таким же именем, распакует в неё содержимое внешней ветки и создаст связь между локальной и внешней веткой.
    Если потом, находясь в этой ветке, выполнишь короткую команду git pull, то увидишь что всё связано и скачивается откуда надо.

    И даже можно сделать ещё проще. Уже во время клонирования сразу распаковать нужную ветку.
    git clone --branch feature <URL>
    Ответ написан
    1 комментарий
  • Git pull что от меня хочет?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    % git pull                                      
    У текущей ветки нет информации об отслеживании.
    Пожалуйста, укажите с какой веткой вы хотите слить изменения.
    Для дополнительной информации, смотрите git-pull(1).
    
        git pull <внешний-репозиторий> <внешняя-ветка>
    
    Если вы хотите указать информацию о отслеживаемой ветке, выполните:
    
        git branch --set-upstream-to=<внешний-репозиторий>/<внешняя-ветка> <локальная-ветка>

    Похоже ты добавил remote с именем MyBot, но забыл связать текущую ветку master с какой-либо вышестоящей.
    Поэтому Git не знает откуда скачивать и просит тебя указать откуда конкретно ты хочешь загрузить коммиты.

    Например так:
    # скачать ветку master из внешнего репозитория MyBot и слить с текущей локальной веткой
    git pull MyBot master

    Либо привязать к текущей ветке вышестоящую чтобы заработал pull без параметров:
    # связать локальную ветку master c внешней веткой master
    git branch --set-upstream-to=MyBot/master master
    Ответ написан
  • Как сделать git add всех папок и файлов проекта, кроме одной папки с ее внутренними папками и файлами?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Ты первым делом должен был добавить строку /database/ в файл .gitignore, который ты создашь в корне проекта, чтобы add . игнорировал эту папку.
    Незачем загонять файлы базы под контроль версий.
    Ответ написан
    9 комментариев
  • Почему на только что скачанном репозитории Git выдает список измененных файлов?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Такое может произойти из-за неправильной настройки символа переноса строки.
    Читай тут как исправить.
    Ответ написан
    Комментировать
  • Сложности после Удаление обновлений Windows?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    удалить обновления винды, так как именно после них места стает меньше

    Неправильный вывод. Обновления не добавляют файлы, а перезаписывают поверх.
    Сами по себе обновления не увеличивают размер Windows.

    Но свободное место уменьшается из-за того, что установочные файлы этих обновлений сохраняются в папке загрузок и сохраняются резервные копии файлов. которые были заменены. Вот их то и надо удалять.
    Желательно через стандартный инструмент, который уже есть — Очистка системы.

    Увидеть, что именно съедает место также помогает бесплатная утилитка WinDirStat
    Советую попробовать.
    Ответ написан
    1 комментарий
  • Не могу применить патч в ГИТе?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    error: main.py: already exists in index
    Это означает что патч пытается создать main.py, но он уже есть в твоём проекте.
    Сначала удали лишний файл, потом продолжи применять патч: git am --continue
    Ответ написан