SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.phpdevby
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?phpdevby
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Сайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыСайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыphpdevby
 
Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.phpdevby
 
Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?phpdevby
 
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHTUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHiman18
 
Sphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиSphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиphpdevby
 
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHTUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHiman18
 
Michael Campana - From Central American to South Caucus: Water Resources in D...
Michael Campana - From Central American to South Caucus: Water Resources in D...Michael Campana - From Central American to South Caucus: Water Resources in D...
Michael Campana - From Central American to South Caucus: Water Resources in D...engineerou
 
Feleke Zewge - Fluorosis Mitigation in Ethiopia
Feleke Zewge - Fluorosis Mitigation in EthiopiaFeleke Zewge - Fluorosis Mitigation in Ethiopia
Feleke Zewge - Fluorosis Mitigation in Ethiopiaengineerou
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...phpdevby
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияphpdevby
 
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...engineerou
 
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...engineerou
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью GitКак удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Gitphpdevby
 
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...engineerou
 

Viewers also liked (17)

Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.Современная разработка сайтов на CMF Drupal.
Современная разработка сайтов на CMF Drupal.
 
PHP 5.4: Что нового?
PHP 5.4: Что нового?PHP 5.4: Что нового?
PHP 5.4: Что нового?
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Сайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системыСайт на Zend Framework в составе промышленной системы
Сайт на Zend Framework в составе промышленной системы
 
Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.Как удержать проект от анархии с помощью Git.
Как удержать проект от анархии с помощью Git.
 
Php архитектор - кто он?
Php архитектор - кто он?Php архитектор - кто он?
Php архитектор - кто он?
 
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHTUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
 
Sphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшкиSphinx в реальных проектах: шишки и плюшки
Sphinx в реальных проектах: шишки и плюшки
 
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUHTUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
TUGAS SEMINAR AKUNTANSI KELAS AK2 08 UNISMUH
 
Michael Campana - From Central American to South Caucus: Water Resources in D...
Michael Campana - From Central American to South Caucus: Water Resources in D...Michael Campana - From Central American to South Caucus: Water Resources in D...
Michael Campana - From Central American to South Caucus: Water Resources in D...
 
Feleke Zewge - Fluorosis Mitigation in Ethiopia
Feleke Zewge - Fluorosis Mitigation in EthiopiaFeleke Zewge - Fluorosis Mitigation in Ethiopia
Feleke Zewge - Fluorosis Mitigation in Ethiopia
 
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...MongoDB. Области применения, преимущества и узкие места, тонкости использован...
MongoDB. Области применения, преимущества и узкие места, тонкости использован...
 
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложенияИспользование AMQP в основе архитектуры бэкенда для мобильного приложения
Использование AMQP в основе архитектуры бэкенда для мобильного приложения
 
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...
Dr. Richard Taylor - Groundwater-climate interactions: current challenges & n...
 
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...
Dr. David Dzombak - Need and Challenge of Alternative Water Sources for use i...
 
Как удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью GitКак удержать проект от анархии с помощью Git
Как удержать проект от анархии с помощью Git
 
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...
Dr. Menachem Elimelech - Water Technologies to Solve Increasing Global Water ...
 

Similar to Как удержать проект от анархии с помощью 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 to Как удержать проект от анархии с помощью 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
 

Как удержать проект от анархии с помощью 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