SlideShare una empresa de Scribd logo
1 de 32
Как удержать проект от анархии с помощью Git
Ага, вот эти ребята Михаил Каморников Александр Татульченков Пропагандист и популяризатор php-джихада и медоед-стайл кодинга. Пишет SQL во вьюхах и несет $GLOBALS в массы.  Не “тот самый Маршал” из сериала. Особо опасен в связке с Symfony 2.
Опять про GIT ...
Недостатки? - слабости sha1 - git на windows - несвязанные файлы - кто и что редактировал? - история файла - начальное клонирование - изменчивые проекты  - глобальный счетчик (svn style) - пустые подкаталоги - первоначальный коммит - причуды интерфейса (a..b, a...b)
Явные плюсы? - всегда с кодом - “--interactive” режим в командах - возможность синхронизации с subversion, mercurial [, cvs )) ] - man всегда под рукой - формат репозитория дружелюбен к rsync, обычному HTTP и backup’ам - можно писать свои скрипты
“ D” в DVCS - каждому по репозиторию - write access нужно заслужить
Integration Manager Workflow
Dictator and Lieutenants Workflow
Как устроено у нас - я ставлю задачу разработчику - разработчик создает бранч от актуального бранча из главного репозитория - в этом бранче разработчик решает поставленную задачу - бранч с выполненной задачей разработчик отправляет в свой рабочий репозиторий - я беру из рабочего репозитория этот бранч и проверяю его - если задача выполнена правильно, я сливаю этот бранч с актуальным бранчем
Social coding
Хорошо, что есть github
Хорошо, что есть github
Пусть git работает за меня - стоит посмотреть git flow - есть утилита лучше git-овской - заставьте git работать через нее - надоела рутина – пишем скрипты на все случаи жизни - не забываем про хуки
Я устал … слово медоеду
На старт, внимание, Git! $ git init $ git add . $ git commit -m "Люк, я тво..."
Репозиторий разработчика $ cd /project/ $ git clone me@trololo.git $ git push origin master:stage $ git checkout -b stage origin/stage
Добавляем aliases .gitconfig [alias] st = status ci = commit br = branch co = checkout df = diff lg = log -p git config --global alias.rb rebase
Я имел в виду совсем не это... :-) Ошиблись в комменте $ git commit --amend Ой, еще и файл добавить забыли $ git commit --amend -a Если все в 10 раз хуже $ git rebase -i HEAD~10
Вон там направо и за угол $ git checkout 1b6d^^2~10 -b ancient $ git log HEAD^2 $ git diff HEAD^
Найдите 10 отличий $ git diff $ git diff --cached $ git diff HEAD $ git diff HEAD^ $ git diff master..experimental $ git diff experimental
к0нфликт git diff git mergetool # fix, fix, fix git commit
Назад в прошлое   и в будущее $ git reset HEAD~3  -- soft $ git reset 1b6d $ git reset ORIG_HEAD
Убить коммиты, жесточайше… $ git reset --hard 1b6d $ git reset --hard HEAD $ git reset --hard HEAD^
Изменяем состав смеси, добавим вишенку $ git checkout -b sanitized $ git cherry-pick medley^^
Вас здесь не стояло! # переключаемся на ветку bug1 $  git checkout bug1 # пересадить историю изменений  $  git rebase master #  глобальный  amend $  git rebase  -i HEAD~7 pick 41cf624 Added connection pick a14e959 Added timeouting to cli pick 1934b6e Added disconnect event pick 0e8a050 Changed connections
Все секреты по карманам, я гуляю с  доберманом $ git stash $ git stash list   $ git stash show $ git stash apply $ git stash drop   $ git stash pop   $ git stash clear
А оно само сломалось ! $ git blame README $ git gui blame README Можно указать и конкретные строки для отображения: $ git blame -L 2,+3 README  Вывести строки и информацию о коммитах, их коснувшихся: $ git annotate README
Немного уличной магии Переписываем историю в духе сталинизма $ git filter-branch --tree-filter 'rm secretfile' HEAD Обучаем git игре в карты $ git rerere Стопитсотый раз тебе говорю $ git submodule foreach 'git pull || :'
Когда же все пошло не так? только что обнаружили, что функционал не работает, но вы совершенно отчетливо помните, что он работал всего несколько месяцев назад $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d для полного счастья $ git bisect reset
Много букаф, неасилил $ git for-each-ref --shell --format="ref=%(refname); commitDate=%(authordate:short)" refs/heads/my* | while read entry do eval "$entry"; branch=${ref:11}; untilStamp=$(date +%s -d "$1"); commitStamp=$(date +%s -d "$commitDate");  compare=$(expr $untilStamp - $commitStamp); if [ $compare -gt 0 ] then echo ‘branch $branch date: $commitDate‘; if [ "$2" == "-d" ] then echo "git branch -D $branch"  eval "git branch -D $branch" else echo "git branch -D $branch" fi fi done
Вопросы
FIN

Más contenido relacionado

La actualidad más candente

Cобачники против кинофобов
Cобачники против кинофобовCобачники против кинофобов
Cобачники против кинофобовLidiya Myalkina
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающихIvan Evtukhovich
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)Badoo Development
 

La actualidad más candente (11)

Git
GitGit
Git
 
Cобачники против кинофобов
Cобачники против кинофобовCобачники против кинофобов
Cобачники против кинофобов
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
new JavaScript
new JavaScriptnew JavaScript
new JavaScript
 
Приручаем Git
Приручаем GitПриручаем Git
Приручаем Git
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
 
Funny JS #1
Funny JS #1Funny JS #1
Funny JS #1
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
"Почему язык Lua — это интересно?", Ник Заварицкий, (Mail.ru Group)
 
iweb01
iweb01iweb01
iweb01
 

Destacado

Переход на Git из Subversion
Переход на Git из SubversionПереход на Git из Subversion
Переход на Git из SubversionMikhail Vasilyev
 
У всех на виду: нюансы Open Source разработки
У всех на виду: нюансы Open Source разработкиУ всех на виду: нюансы Open Source разработки
У всех на виду: нюансы Open Source разработкиCUSTIS
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.7bits
 
Сергей Сергеев "Используем git без проблем"
Сергей Сергеев "Используем git без проблем"Сергей Сергеев "Используем git без проблем"
Сергей Сергеев "Используем git без проблем"Yandex
 
Сергей Сергеев "Git — ветки, деревья, лес"
Сергей Сергеев "Git — ветки, деревья, лес"Сергей Сергеев "Git — ветки, деревья, лес"
Сергей Сергеев "Git — ветки, деревья, лес"Yandex
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Андрей Кухаренко
 
Работа с Git в команде Яндекс.Браузера — Алёна Царёва
Работа с Git в команде Яндекс.Браузера — Алёна ЦарёваРабота с Git в команде Яндекс.Браузера — Алёна Царёва
Работа с Git в команде Яндекс.Браузера — Алёна ЦарёваYandex
 
Черная и белая магия Git (мастер-класс)
Черная и белая магия Git (мастер-класс)Черная и белая магия Git (мастер-класс)
Черная и белая магия Git (мастер-класс)SQALab
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним боротьсяВладимир Кожаев
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с GitAndrey Akinshin
 
Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use ItDaniel Kummer
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 

Destacado (13)

Переход на Git из Subversion
Переход на Git из SubversionПереход на Git из Subversion
Переход на Git из Subversion
 
У всех на виду: нюансы Open Source разработки
У всех на виду: нюансы Open Source разработкиУ всех на виду: нюансы Open Source разработки
У всех на виду: нюансы Open Source разработки
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.
 
Сергей Сергеев "Используем git без проблем"
Сергей Сергеев "Используем git без проблем"Сергей Сергеев "Используем git без проблем"
Сергей Сергеев "Используем git без проблем"
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Сергей Сергеев "Git — ветки, деревья, лес"
Сергей Сергеев "Git — ветки, деревья, лес"Сергей Сергеев "Git — ветки, деревья, лес"
Сергей Сергеев "Git — ветки, деревья, лес"
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
 
Работа с Git в команде Яндекс.Браузера — Алёна Царёва
Работа с Git в команде Яндекс.Браузера — Алёна ЦарёваРабота с Git в команде Яндекс.Браузера — Алёна Царёва
Работа с Git в команде Яндекс.Браузера — Алёна Царёва
 
Черная и белая магия Git (мастер-класс)
Черная и белая магия Git (мастер-класс)Черная и белая магия Git (мастер-класс)
Черная и белая магия Git (мастер-класс)
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним бороться
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с Git
 
Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use It
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 

Similar a Как удержать проект от анархии с помощью Git

Git для начинающих
Git для начинающихGit для начинающих
Git для начинающихVadim Drobinin
 
Interactive git-diff
Interactive git-diffInteractive git-diff
Interactive git-diffmvuets
 
Антон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitАнтон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitGAiN@ESD
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Egor Stremousov
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.DrupalForumZP2012
 
базовые принципы работы с Git
базовые принципы работы с Gitбазовые принципы работы с Git
базовые принципы работы с GitDressTester
 
Git для новичков
Git для новичковGit для новичков
Git для новичковSoftline
 
Felix — система синхронизации конфигов
Felix — система синхронизации конфиговFelix — система синхронизации конфигов
Felix — система синхронизации конфиговIvan Bessarabov
 
Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitIvan Evtukhovich
 
Git (presentation)
Git (presentation)Git (presentation)
Git (presentation)Anton Ivanov
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Dmytro Olaresko
 
Быстрое развертывание среды разработки c Vagrant
Быстрое развертывание среды разработки c VagrantБыстрое развертывание среды разработки c Vagrant
Быстрое развертывание среды разработки c VagrantOlga Lavrentieva
 

Similar a Как удержать проект от анархии с помощью Git (20)

Git for you
Git for youGit for you
Git for you
 
Git presentation
Git presentationGit presentation
Git presentation
 
Git для начинающих
Git для начинающихGit для начинающих
Git для начинающих
 
Interactive git-diff
Interactive git-diffInteractive git-diff
Interactive git-diff
 
Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?Gradle in Enterprise, Is it possible?
Gradle in Enterprise, Is it possible?
 
Антон Шумихин - Redmin&Git
Антон Шумихин - Redmin&GitАнтон Шумихин - Redmin&Git
Антон Шумихин - Redmin&Git
 
Git intro
Git introGit intro
Git intro
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"
 
Chebit.Git
Chebit.GitChebit.Git
Chebit.Git
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.
 
базовые принципы работы с Git
базовые принципы работы с Gitбазовые принципы работы с Git
базовые принципы работы с Git
 
Git для новичков
Git для новичковGit для новичков
Git для новичков
 
Felix — система синхронизации конфигов
Felix — система синхронизации конфиговFelix — система синхронизации конфигов
Felix — система синхронизации конфигов
 
Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере git
 
Git (presentation)
Git (presentation)Git (presentation)
Git (presentation)
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.
 
Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016Release management with Gradle #JokerConf2016
Release management with Gradle #JokerConf2016
 
Git for experienced
Git for experiencedGit for experienced
Git for experienced
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Быстрое развертывание среды разработки c Vagrant
Быстрое развертывание среды разработки c VagrantБыстрое развертывание среды разработки c Vagrant
Быстрое развертывание среды разработки c Vagrant
 

Más de phpdevby

Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияphpdevby
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.phpdevby
 
Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?phpdevby
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git phpdevby
 
Sphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиSphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиphpdevby
 
Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.phpdevby
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Сайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыСайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыphpdevby
 

Más de phpdevby (10)

Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.
 
Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git
 
Sphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиSphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшки
 
Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Сайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыСайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системы
 

Как удержать проект от анархии с помощью Git

  • 1. Как удержать проект от анархии с помощью Git
  • 2. Ага, вот эти ребята Михаил Каморников Александр Татульченков Пропагандист и популяризатор php-джихада и медоед-стайл кодинга. Пишет SQL во вьюхах и несет $GLOBALS в массы. Не “тот самый Маршал” из сериала. Особо опасен в связке с Symfony 2.
  • 4. Недостатки? - слабости sha1 - git на windows - несвязанные файлы - кто и что редактировал? - история файла - начальное клонирование - изменчивые проекты - глобальный счетчик (svn style) - пустые подкаталоги - первоначальный коммит - причуды интерфейса (a..b, a...b)
  • 5. Явные плюсы? - всегда с кодом - “--interactive” режим в командах - возможность синхронизации с subversion, mercurial [, cvs )) ] - man всегда под рукой - формат репозитория дружелюбен к rsync, обычному HTTP и backup’ам - можно писать свои скрипты
  • 6. “ D” в DVCS - каждому по репозиторию - write access нужно заслужить
  • 9. Как устроено у нас - я ставлю задачу разработчику - разработчик создает бранч от актуального бранча из главного репозитория - в этом бранче разработчик решает поставленную задачу - бранч с выполненной задачей разработчик отправляет в свой рабочий репозиторий - я беру из рабочего репозитория этот бранч и проверяю его - если задача выполнена правильно, я сливаю этот бранч с актуальным бранчем
  • 13. Пусть git работает за меня - стоит посмотреть git flow - есть утилита лучше git-овской - заставьте git работать через нее - надоела рутина – пишем скрипты на все случаи жизни - не забываем про хуки
  • 14. Я устал … слово медоеду
  • 15. На старт, внимание, Git! $ git init $ git add . $ git commit -m "Люк, я тво..."
  • 16. Репозиторий разработчика $ cd /project/ $ git clone me@trololo.git $ git push origin master:stage $ git checkout -b stage origin/stage
  • 17. Добавляем aliases .gitconfig [alias] st = status ci = commit br = branch co = checkout df = diff lg = log -p git config --global alias.rb rebase
  • 18. Я имел в виду совсем не это... :-) Ошиблись в комменте $ git commit --amend Ой, еще и файл добавить забыли $ git commit --amend -a Если все в 10 раз хуже $ git rebase -i HEAD~10
  • 19. Вон там направо и за угол $ git checkout 1b6d^^2~10 -b ancient $ git log HEAD^2 $ git diff HEAD^
  • 20. Найдите 10 отличий $ git diff $ git diff --cached $ git diff HEAD $ git diff HEAD^ $ git diff master..experimental $ git diff experimental
  • 21. к0нфликт git diff git mergetool # fix, fix, fix git commit
  • 22. Назад в прошлое и в будущее $ git reset HEAD~3 -- soft $ git reset 1b6d $ git reset ORIG_HEAD
  • 23. Убить коммиты, жесточайше… $ git reset --hard 1b6d $ git reset --hard HEAD $ git reset --hard HEAD^
  • 24. Изменяем состав смеси, добавим вишенку $ git checkout -b sanitized $ git cherry-pick medley^^
  • 25. Вас здесь не стояло! # переключаемся на ветку bug1 $ git checkout bug1 # пересадить историю изменений $ git rebase master # глобальный amend $ git rebase -i HEAD~7 pick 41cf624 Added connection pick a14e959 Added timeouting to cli pick 1934b6e Added disconnect event pick 0e8a050 Changed connections
  • 26. Все секреты по карманам, я гуляю с доберманом $ git stash $ git stash list $ git stash show $ git stash apply $ git stash drop $ git stash pop $ git stash clear
  • 27. А оно само сломалось ! $ git blame README $ git gui blame README Можно указать и конкретные строки для отображения: $ git blame -L 2,+3 README Вывести строки и информацию о коммитах, их коснувшихся: $ git annotate README
  • 28. Немного уличной магии Переписываем историю в духе сталинизма $ git filter-branch --tree-filter 'rm secretfile' HEAD Обучаем git игре в карты $ git rerere Стопитсотый раз тебе говорю $ git submodule foreach 'git pull || :'
  • 29. Когда же все пошло не так? только что обнаружили, что функционал не работает, но вы совершенно отчетливо помните, что он работал всего несколько месяцев назад $ git bisect start $ git bisect bad HEAD $ git bisect good 1b6d для полного счастья $ git bisect reset
  • 30. Много букаф, неасилил $ git for-each-ref --shell --format="ref=%(refname); commitDate=%(authordate:short)" refs/heads/my* | while read entry do eval "$entry"; branch=${ref:11}; untilStamp=$(date +%s -d "$1"); commitStamp=$(date +%s -d "$commitDate"); compare=$(expr $untilStamp - $commitStamp); if [ $compare -gt 0 ] then echo ‘branch $branch date: $commitDate‘; if [ "$2" == "-d" ] then echo "git branch -D $branch" eval "git branch -D $branch" else echo "git branch -D $branch" fi fi done
  • 32. FIN