LINUX.ORG.RU

Git 2.3.0

 


0

3

Как обычно, выпуск содержит множество улучшений, усовершенствований производительности и исправлений ошибок.

Push to deploy

Один из способов развёртывания веб-приложений из Git — хранение рабочей копии на сервере. Когда появляется новая версия, на сервере исполняется git pull. С Git 2.3 это стало ещё более удобным.

Теперь изменения в хранилище на сервере можно отправить и при условии, что локальные изменения там отсутствуют, любые изменения в текущей ветке будут получены автоматически. Чтобы использовать эту функцию достаточно выполнить следующую команду в хранилище Git на сервере:

$ git config receive.denyCurrentBranch updateInstead

Более быстрое клонирование путём заимствования объектов из существующих клонов

Клонирование удалённого репозитория может привести к передаче больших объёмов данных. Но если имеется склонированный из этого же хранилища локальный репозиторий, вероятно в нём уже находится большая часть истории. Можно снова использовать объекты этого репозитория, вместо того, чтобы скачивать их из удалённого:

$ git clone --reference ../oldclone --dissociate https://github.com/gitster/git.git

Локальные репозитории останутся независимыми друг от друга и любой из них может быть удалён без влияния на другие.

Консервативное поведение по умолчанию для git push

Если выполнить git push без аргументов, git будет вести себя более по-старому. Текущая ветка не будет отправляться, пока для неё не будет создана ветка с таким же названием в удалённом репозитории.

Пример:

$ git config branch.autosetupmerge true
$ git checkout -b experimental origin/master
Branch experimental set up to track remote branch master from origin.
Switched to a new branch 'experimental'
$ git commit -a -m 'Experimental changes'
[experimental 43ca356] Experimental changes
$ git push
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:master

To push to the branch of the same name on the remote, use

    git push origin experimental

Новое поведение призвано помочь пользователям избежать случайной отправки изменений в неверную ветку. Это можно изменить с помощью опции push.default. Чтобы вернуться к поведению версии 1.x нужно выполнить: git config --global push.default matching

Напоминаем: В декабре прошлого года в Git была исправлена критическая уязвимость. Рекомендуется обновить свой Git клиент как можно быстрее. Новый выпуск 2.3.0 включает в себя это исправление. Оно также доступно в следующих версиях: 1.8.5.6, 1.9.5, 2.0.5, 2.1.4.

>>> Подробности

★★★★★

Проверено: toney ()
Последнее исправление: cetjs2 (всего исправлений: 4)

Ответ на: комментарий от Harald

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

лишняя работа

А вот и школота стартапная подтянулась. Ну давай, расскажи мне, как ты из SVN деплоишь на свои тысячи виртуалок на AWS, без лишней работы. Понабежало теоретиков.

anonymous
()
Ответ на: комментарий от matumba

А если ещё веселее: локально есть исходники, полученные в zip'е, но при этом нет системных файлов .git/* - гит сможет создать репу локально и подцепить существующие файлы?

Конечно, сразу с историей. Он её из /dev/atsral берёт.

anonymous
()
Ответ на: комментарий от Legioner

А люди говорят «папка».

Это которые после 1995 года родились что ли? Ну да, бывает и говорят. Я вот «папку» слышал очень редко, в основном из-за двери с табличкой «бухгалтерия». А на одной из работ на каждую «папку» коллектив дружно отзывался «мамкой», шутка такая была локальная, сродни «that's what she said» и по остроте, и по надоедливости. Но были и плюсы от этого петросянства: доведённое до автоматизма единство терминологии в документации и в общении с клиентами.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.