Задать вопрос
  • Можно ли пользоваться двумя аккаунтами в Gitlab одновременно?

    Опишу, как это сделать на Маке и Линуксе. Про Винду даже не спрашивайте, уже лет 7 как не помню.

    Для работы с двумя аккаунтами GitLab с одной машины требуется настроить Git для использования разных SSH-ключей. Каждому аккаунту будет соответствовать свой ключ.

    1: Создание отдельных SSH-ключей

    Для каждого аккаунта GitLab необходим уникальный SSH-ключ. Если стандартный ключ (`~/.ssh/id_rsa`) уже существует, его можно оставить для первого аккаунта. Для второго аккаунта создаётся новый.

    В терминале выполняется команда для генерации нового ключа. В ней `"email_второго_аккаунта@example.com"` заменяется на почту, привязанную ко второму аккаунту GitLab. При запросе имени файла нужно указать уникальное имя, чтобы не перезаписать существующие ключи.

    # Имя id_gitlab_work можно заменить на любое другое
    ssh-keygen -t ed25519 -C "email_второго_аккаунта@example.com" -f ~/.ssh/id_gitlab_work


    В результате у нас будет две пары ключей:

    • `~/.ssh/id_rsa` и `id_rsa.pub` (для первого аккаунта)
    • `~/.ssh/id_gitlab_work` и `id_gitlab_work.pub` (для второго)


    2: Добавление SSH-ключей в аккаунты GitLab

    Далее публичные части ключей (`.pub`) добавляются в соответствующие аккаунты GitLab.

    Для первого аккаунта это будет ~/.ssh/id_rsa.pub
    Для второго аккаунта ~/.ssh/id_gitlab_work.pub

    Кликаем на аватарку в gitlab, выбираем "Edit Profile" и в секции "SSH Keys" обоих аккаунтов добавляем соответствующие им публичные ключи

    3: Настройка SSH-клиента

    Чтобы система знала, какой ключ для какого репозитория использовать, настраивается файл конфигурации SSH. В нём создаются псевдонимы для `gitlab.com`.

    1. Нужно открыть или создать файл `~/.ssh/config`.

    Если его нет, создаём:
    touch ~/.ssh/config

    2. Открываем файл, добавляем конфигурацию, которая создаёт два «хоста», `gitlab.com-personal` и `gitlab.com-work`, которые оба ссылаются на `gitlab.com`, но используют разные файлы ключей.

    # Первый аккаунт (например, личный)
    Host gitlab.com-personal
      HostName gitlab.com
      User git
      IdentityFile ~/.ssh/id_rsa
      IdentitiesOnly yes
    
    # Второй аккаунт (например, рабочий)
    Host gitlab.com-work
      HostName gitlab.com
      User git
      IdentityFile ~/.ssh/id_gitlab_work
      IdentitiesOnly yes


    4: Настройка локальных репозиториев

    Теперь необходимо обновить URL-адреса удалённых репозиториев в локальных проектах, чтобы они использовали созданные псевдонимы.

    1. В директории проекта для первого аккаунта выполняется команда для изменения URL.
    Проверить текущий адрес: git remote -v
    Заменить `gitlab.com` на псевдоним gitlab.com-personal:

    git remote set-url origin git@gitlab.com-personal:username/repo.git


    2. В директории проекта для второго аккаунта выполняется аналогичная команда, но с другим псевдонимом:

    git remote set-url origin git@gitlab.com-work:otheruser/other-repo.git


    При клонировании новых репозиториев следует сразу использовать адрес с нужным псевдонимом:

    # Клонирование с первого аккаунта
    git clone git@gitlab.com-personal:username/repo.git
    
    # Клонирование со второго аккаунта
    git clone git@gitlab.com-work:otheruser/other-repo.git


    5: (Рекомендуется) Настройка автора коммитов

    Чтобы коммиты в каждом репозитории подписывались правильными данными, а не глобальными настройками вашего git, следует задать имя и почту автора локально для каждого проекта.

    В репозитории для первого аккаунта:

    git config user.name "Имя для первого аккаунта"
    git config user.email "email_первого_аккаунта@example.com"


    В репозитории для второго аккаунта:

    git config user.name "Имя для второго аккаунта"
    git config user.email "email_второго_аккаунта@example.com"


    После завершения настройки, при выполнении `git push` из разных директорий, Git будет автоматически использовать соответствующий ключ и данные автора.
    Ответ написан
    1 комментарий
  • За сколько можно продать этот компьютер?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    За тыщу можно
    Ответ написан
    Комментировать
  • Как понять стоит ли менять экран на смартфоне?

    xez
    @xez
    TL Junior Roo
    в 2014 вроде покупал

    В утиль
    Ответ написан
    Комментировать
  • Почему в наутилусе папка распаковывается за 1 секунду, а в Windows 1 минуту?

    Потому что в винде zip очень древний и неоптимизированный.
    Лучше использовать winrar или 7zip для распаковки - тогда тоже будет быстро.
    Ответ написан
  • Как изучить основы программирования для последующего изучения С++?

    Adamos
    @Adamos
    Другой воробей на дороге стоял
    И под ноги очень серьезно смотрел.
    Хотел воробей научиться ходить
    И думал, с какой ему лапы шагнуть.

    Тщательная подготовка к тому, чтобы наконец заняться тем, чем собираешься заняться - это один из видов прокрастинации.
    Ответ написан
    4 комментария
  • Как практиковаться в программировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Забей на программирование, это не твое.

    Если тебе не интересно работать в консоли, неинтересно с формочками, то может быть, сильно настучав себе на голове ты это и сможешь осилить, и может быть даже сможешь осилить интервью и трудоустройство. Но на работе все равно быстро перегоришь и будешь жить несчастную жизнь.

    Найди ту деятельность, где у тебя глаза горят.
    Ответ написан
    4 комментария
  • Насколько полезно читать книги?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Насколько полезно читать книги по програмированию и какое у них преимущество
    Книги читать полезно в любом случае, но эффект будет ТОЛЬКО если вы будете применять прочитанное на практике, просто почитать и запомнить работать не будет.

    что с
    видеокурсами или самоличному изучению того или иного путём поисков этого в гугле?
    : Книга - отдельный толковый труд, хорошо продуманный, отредактированный, структурированный и выдающий материал последовательно и без больших пропусков. То есть отличается цельностью и подробностью.

    В противовес этому, например видео, чаще всего короткие, по одной какой-то теме, которая интересна автору или аудитории. Да, есть хорошие видеокурсы, прям хорошо поданные и хорошо сделанные, но большей частью это обрывочные ролики на 1 тему, а не учебный материал от и до. С какими то отдельными вопросами отлично помогает, но системность никакая.То же касается гугления - чаще вы найдете отдельный ответ на отдельный вопрос, а не всю тему от начала до конца. Больше подходит для "разобраться в непонятном куске учебника", нежели для системного обучения.

    И практика, без ее как книжки, так и видеокурсы бесполезны.
    Ответ написан
    1 комментарий
  • Какие решения существуют для поиска кадров в небольшую команду?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Подъëм зарплаты всегда работает.
    Ответ написан
    Комментировать
  • Как понять есть ли в схеме запрограммированное устаревание?

    15432
    @15432
    Системный программист ^_^
    В простой схеме вы вряд ли найдете "слабые места", потому что они в другом месте. А именно, перегрузка светодиодов по току (для большей яркости), отсутствие нормального охлаждения (для уменьшения габаритов и экономии металла), использование самых дешевых светодиодов с низкой цветопередачей и т.д.
    Ответ написан
    2 комментария
  • Обмен сигналами между процессами в linux?

    @SunTechnik
    Почитайте man на две команды:
    kill
    trap

    Kill - посылает сигнал процессу.
    В большинстве случаев, процесс, получив сигнал завершает свою работу.
    Но с помощью команды trap можно повесить собственный обработчик (команду) на получение сигнала.
    Не на все сигналы можно изменить обработчик.

    В гугле поищите: Trap — обработка сигналов и ошибок в Bash
    Ответ написан
    Комментировать
  • Как читать на Хабр статьи более чем трехмесячной давности?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Читать хабр, только если поисковик на запрос выдал его статью.
    Ответ написан
    1 комментарий
  • Как правильно записывать логическое выражение по таблице истиности?

    @atereffigies
    Это не таблица истинности, это таблица переходов-выходов для конечного автомата.
    Ответ написан
    3 комментария
  • Можете оценить схему балласта и описание к ней?

    @pfg21
    ex-турист
    одна фраза "В качестве фильтра электромагнитных помех выступает диодный мост" убивает даже желание читать дальнейшее...

    описаний работы дешового драйвера современных ЛДС ламп в интернете навалом
    Ответ написан
    6 комментариев
  • Какая из этих книг лучше?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Начинать однозначно со второй. Ее автор - Эви Немет сотоварищи, очень известная и уважаемая в мире UNIX. Была. (Пропала в море в 2013 году при переходе из Новой Зеландии в Австралию, скорее всего застигнута штормом).

    Первую стоит читать, когда вторая покажется легким чтивом :)

    И, конечно же совмещать с практикой :) Поставить в виртуалку и попытаться что-нибудь сделать. Разумеется, сначала получится нихрена. Потом снова нихрена. Потом, раза с четвертого, что-то начнет прорисовываться...
    Ответ написан
    Комментировать
  • Какая из этих книг лучше?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Они про разное, их нельзя сравнивать.
    Ответ написан
    2 комментария
  • Какая из этих книг лучше?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Читайте обе.
    Ответ написан
    2 комментария
  • Существует ли формула позволяющая определить какое из двух чисел является самым большим?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Максимум:

    ( a + b + sqrt(  ( a - b ) * ( a - b ) ) ) 
    ___________________________________________
                         2


    Чтобы получить минимум, надо перевернуть знак перед корнем:

    ( a + b - sqrt(  ( a - b ) * ( a - b ) ) ) 
    ___________________________________________
                         2


    Где SQRT - взятие корня квадратного

    Код на плюсиках:
    int32_t TheMadMax( const int32_t a, const int32_t b ) 
    {
        const int32_t alpha = ( a - b );
        const int32_t beta  = alpha >> 31;
        const int32_t gamma = ( alpha ^ beta ) - beta;
        return ( a + b + gamma ) >> 1;
    }


    Референс
    Ответ написан
  • Как подружить RS485 устройство, локальную сеть и запросы get/post?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    - разобраться с тем, как через конвертер LAN-RS485 превратить упомянутые выше команды в get/post запросы


    После чтения мануала выяснилось, что все написано на стр. 25.
    Ответ написан
    4 комментария
  • Что находится в .text секции?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    В .text Находится исполняемый код.

    6kb там не зря. Там куча вспомогательного кода, чтобы взаимодействовать с операционной системой. Начиная от загрузки всяких внутренностей libc, до настройки консоли.
    Ответ написан
    Комментировать