- PVSM.RU - https://www.pvsm.ru -
Приветствую вас, коллеги! Сегодня утром гитхаб опубликовал подробную статью [1] о свежевышедшой версии git. Забрать ее, как обычно, можно на официальном сайте [2], а под катом — краткий перевод что нового и интересного: push-to-deploy, ручное управление параметрами SSH, способ предотвратить зависание cron скриптов с клиентом git и многое другое.
Возможность сконфигурировать удаленный репозиторий таким образом, что полученный push автоматически делает checkout (при условии что на этом компьютере не было локальных изменений, конечно же). Эта функция удобна для тестового и внутреннего deploy: не нужно устанавливать дополнительные скрипты, push на сервер автоматически меняет его файлы в рабочей копии, а не только добавляет их в репозиторий.
Авторы предупреждают, что использовать эту функциональность для deploy production серверов не рекомендуется, так как есть ряд побочных явлений:
Новый ключ --dissociate позволяет во время клонирования забирать нужные файлы из указанного с помощью --reference локального репозитория: это позволяет сильно сократить время клонирования и нагрузку на сеть, если копия нужного репозитория уже есть где-то на диске:
git clone --reference ../oldclone --dissociate https://github.com/gitster/git.git
Помните, в последнее время при пуше веток гит постоянно рекомендовал установить «push.default», намекая что скоро поведение по умолчанию поменяется? Оно поменялось. Теперь, если имя локальной ветки отличается от имени upstream ветки, то git откажется делать push без указания remote, чтобы защитить вас от push не в ту ветку:
git checkout -b experimental origin/master
git commit -a -m 'Experimental changes'
# Вот это теперь не сработает - разработчик явно хочет сделать push в 'experimental', а не в 'master'.
git push
С помощью переменной окружения GIT_SSH_COMMAND теперь можно точно сконфигурировать как git будет использовать ssh. Наконец-то можно легко делать разные приватные ключи для разных репозиториев без модификации user-wide "~/.ssh/config":
GIT_SSH_COMMAND='ssh -i git_id' git clone host:repo.git
Установив переменную окружения GIT_TERMINAL_PROMPT в 0 можно отключить ввод пользователя. Это полезно, когда git вызывается из скрипта автоматизации и ввод пользователя не подразумевается — теперь при ошибках авторизации git не будет запрашивать логин/пароль и тем самым подвешивать cron скрипт.
Если я что пропустил, неправильно понял или неправильно перевел — пишите.
Автор: eyeofhell
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/81859
Ссылки в тексте:
[1] статью: https://github.com/blog/1957-git-2-3-has-been-released
[2] официальном сайте: http://git-scm.com/
[3] Источник: http://habrahabr.ru/post/249857/
Нажмите здесь для печати.