git

git cherry-pick Черри пик Выбираем конкретные коммиты из другой ветки в свою

Для начала с помощью работы с историей узнаем какие коммиты нам нужны, после чего конкретный коммит можно забрать командой:

git cherry-pick хэшВашегоКоммита

Напр. у меня было:

git cherry-pick ec8adb336588ab4510f55bf2fc63ab3b5513898c

-- коммит будет добавлен в ту ветку, на которой вы сейчас находитесь

git error: The following untracked working tree files would be overwritten by checkout Ошибка

В ответ на команду:

git fetch && git rebase origin/master

Получаем:

First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
.........

Возможная причина

Судя по всему гит тут падает, потому что есть риск потерять файлы, находившиеся в игноре (не под контролем) в результате применения измений, или что-то такое

git fatal: Could not detach HEAD Ошибка

В ответ на команду:

git fetch && git rebase origin/master

Получаем:

First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
.........
.........
Aborting
fatal: Could not detach HEAD

Возможная причина

Судя по всему гит тут падает, потому что есть риск потерять файлы, находившиеся в игноре (не под контролем) в результате применения измений, или что-то такое

linux git Bad owner or permissions on .ssh/config Исправить права

Можно дать такие права:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/*

github Как сделать "второй" форк репозитория (fork) на тот же аккаунт

Возможная ситуация

Предположим, что у вас:

  1. уже есть форк репозитория (назовем его "старый форк"), который не хочется удалять
  2. и при этом нужно сделать еще один форк на тот же аккаунт (напр. с целью получить "чистую копию" для дальнейших пулл-реквестов)

Решение

Действуем так:

git Обновить репозиторий-форк из оригинального репозитория (добавляем еще один внешний репозиторий)

По аналогии с этой историей, предположим, что вы находитесь в систуации:

  1. Вы сделали форк
  2. Произвели какие-то действия и теперь вам нужно снова привести текущую ветку вашего форка в состояние "как в оригинальном репозитории" (напр. подтянуть, то что туда успели влить параллельно с вашей веткой)

Тогда действуем так:

git Откат переключение конктреного файла на состояние из другой ветки

Можно так:

git fetch && git checkout origin/имяДругойВетки путьКФайлу

Например откат к состоянию из мастера:

git fetch && git checkout origin/master путьКФайлу

git поиск Найти коммиты, историю изменений, где был изменен/удален указанный код, строка, фрагмент

Поиск изменений в истории по строке

Используйте флаг -S для команды просмотра истории (см. также официальную документацию):

git log -S "чтоищем"

Например:

git log -S "$foo->hello();"

По регулярному выражению

Для поиска по регулярному выражению, используем то же, что и выше, но с флагом -G вмето -S

Pages

Subscribe to RSS - git