Контакты
Местоположение
США, California

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (25)
  • Возможно ли синхронизировать Git в локальном и удаленном проекте?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Зачем забирать файлы напрямую с рабочего сервера? Синхронизируйте через Git. Можно пуллить сразу на домашний комп, работать и пушить обратно в основной репозиторий.
    Ответ написан
  • Как сделать merge в ветку git-flow?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    1) По умолчанию, git push отправляет на сервер только одну ветку — текущую.
    Чтобы отправить ветку developer, сначала переключитесь на неё.
    git checkout developer
    git push -u

    Либо можно не переключаться, но явно указать, что и куда отправить
    git push -u origin developer
    Эта команда говорит: возьми ветку developer и отправь в репозиторий origin.
    Флаг -u нужен чтобы сразу связать локальные ветки с создаваемыми удалёнными.

    Хотя можно сказать гиту, чтобы он отправил сразу все локальные ветки
    % git push -u --all 
    Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
    To https://github.com/.../repo.git
     * [new branch]      developer -> developer
    Ветка «developer» отслеживает внешнюю ветку «developer» из «origin».
    Ветка «feature/feature_some1» отслеживает внешнюю ветку «feature/feature_some1» из «origin».
    Ветка «feature/feature_some2» отслеживает внешнюю ветку «feature/feature_some2» из «origin».
    Ветка «master» отслеживает внешнюю ветку «master» из «origin».

    Но если у вас есть локальная ветка, которую вы не хотите светить на сервере, то флаг -all не подойдет ))

    2) Синтаксис названия feature/feature_some1 это не две ветки, feature и вложенная feature_some1
    Это всё равно одна ветка. Но в графических клиентах такие ветки отображаются как вложенные, для удобства.
    Создав вторую ветку с именем feature/feature_some2 получим такую картинку

    604841b7bfdc2368381419.png
    Но никакой ветки feature не существует.
    % git branch    
      developer
      feature/feature_some1
    * feature/feature_some2
      master


    3) Как сделать merge в ветку developer?
    Перед слиянием убедиться, что рабочая копия не имеет незакоммиченных изменений.
    Либо дропните незафиксированные правки либо создайте коммит с ними.
    Иначе git не знает что с ними делать и выдал вам ошибку.
    Ответ написан
  • Как сохранить переименование файла после git reset head^?

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

    git status показывает что файл переименован, только после того, как вы проиндексируете ваши изменения.
    git mv автоматически индексирует переименовынный файл.
    Подробнее...
    это эквивалентно выполнению следующих команд
    mv 1.txt 2.txt
    git rm 1.txt
    git add 2.txt

    А после git reset head^ индекс чист, поэтому статус показывает так.
    Вам поможет команда git reset --soft head^, которая как раз восстанавливает индекс тоже.
    И статус уже сразу покажет что файл переименован.
    Ответ написан
  • Как запушить в новый репозиторий?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Прежде чем подключать новый, надо удалить ссылку на старый.
    git remote remove origin
    Затем добавляем ссылку на новый
    git remote add origin https://github.com/...
    Привязываем ветку к новому репозиторию
    git push --set-upstream origin
    Ответ написан
  • Как слить 2 локальные ветки?

    sergey-kuznetsov
    @sergey-kuznetsov
    Автоматизатор
    Можно ли это сделать у себя локально?
    Конечно можно! После того, как переключитесь на новую ветку (я так понял, что имеется в виду локальный master), сделайте слияние с веткой feature командой:
    git merge feature
    Так можно проверить, как ваши правки будут работать, после того как их примут во внешнем репозиториии (наверное GitHub?). Главное не пытаться потом отправлять (git push) ветку master. Так как скорее всего рабочий процесс предполагает работу через запросы на слияние на сервере (Pull Request)

    Такое ощущение, что у вас каша в голове и не понимаете что спрашиваете.
    Ответ написан