27 Ноя


2018

Git. Проблемы из жизни.

Слияние 2 репозиториев с сохранением истории коммитов.

git checkout <new branch name>
git pull <old rep> --allow-unrelated-histories

После чего вручную правим конфликты и делаем коммит.

Слияние Клонирование единственного бренча с удаленной ветки.

git clone --single-branch --branch <branchname> host:/dir.git

Работа c cабмодулями

Рекурсивное обновление всех вложенных репозиториев.

git submodule update --recursive --remote

Если это первое получение данных сабмодулей то необходимо сначала провести инициализацию.

git submodule update --init --recursive

Ну или можно еще так

git submodule foreach 'git fetch origin; git checkout $(git rev-parse --abbrev-ref HEAD); git reset --hard origin/$(git rev-parse --abbrev-ref HEAD); git submodule update --recursive; git clean -dfx'

 

Удаление локальных бранчей 

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

git branch --merged | grep -v "master" | while read i; do git branch -d $i; done;

Для удаления замердженных бранчей на удаленном репозитории:


git branch -r --merged | grep -v master | sed 's/origin\//:/' | xargs -n 1 git push origin
GIT
фичи