- PVSM.RU - https://www.pvsm.ru -
Вышел новый Git 2.8.0 [1]! В течение пары последних недель, когда релиз был в стадии кандидата, я прошёлся по списку коммитов и заметок к нему, пробуя новые вещи и отмечая интересные моменты. Чтобы сохранить ваше время, предлагаю субъективную выборку фич, которые стоит попробовать. Пользуйтесь!
push -d
, синоним push --delete
Это отличное дополнение как для полноты множества опций, так и для скорости набора команд. Возможно, вы уже используете git branch -d
, чтобы удалять локальную ветку, а теперь можно так же сократить команду удаления remote-ветки до git push -d
.
git branch -d my-branch # удаляет локальную ветку, если она уже слита
git push -d origin my-branch # удаляет remote-ветку в origin-репозитории
git grep
Пара актуальных возможностей была интегрирована в функциональность git grep
:
grep
должен использовать для поиска по дереву объектов. Добавьте --num-threads
к команде или укажите параметр grep.threads
в .gitconfig
, чтобы сделать настройку постоянной.
git grep --num-threads=5 <pattern>
git grep
в папке, не принадлежащей git-репозиторию, Git начнёт поиск корня репозитория, рекурсивно проверяя родительскую папку, — это не всегда соответствует тому, что хотелось бы получить в результате. С новой версией стало можно использовать git grep
вне git-репозитория, явно указав опцию --no-index
. Чтобы сделать такое поведение стандартным, достаточно добавить параметр grep.fallbackToNoIndex
в конфигурацию Git.
git grep --no-index <pattern>
pull --rebase
Команду git pull --rebase
теперь можно запустить в интерактивном режиме:
git pull --rebase=interactive
Это интересное дополнение к процессу pull rebase, когда вы хотите схлопнуть коммиты или изменить их комментарии прямо во время выполнения pull (не забываем о стандартных предупреждениях об использовании rebase [2]).
git config
;)Теперь git config
может показать, где было установлено значение: будь оно определено в конфигурационном файле или blob-файле, прочитано из стандартного ввода или задано в командной строке. Например, я могу спросить: "Где я определил мой алиас st
(status)?", — и git config
подскажет мне ответ:
git config --show-origin alias.st
file:/Users/np/.gitconfig status -s
git blame
занимает много времени.<branch>^{/!-<pattern>}
. Она позволяет сослаться на коммит, достижимый из ветки <branch>
, но не удовлетворяющий заданному паттерну <pattern>
.git fetch
, чтобы при её выполнении использовался только протокол IPv4 (или IPv6). Добавьте параметр: git fetch -4
или git fetch -6
, соответственно.git worktree add -B <branchname>
не работала должным образом, — эта ошибка исправлена.Описанное выше — лишь выборка, релиз содержит гораздо больше! Подробнее о других нововведениях, вошедших в Git 2.8.0 можно узнать в исходном коде и полных заметках к релизу [1].
Никола Паолуччи [3] — Developer Advocate в Atlassian. Он пишет и рассказывает о git, процессах разработки, совместной работе над кодом, Docker. Перед Atlassian он руководил командами разработки, строил crowd sourcing приложения для геопространственных данных, работал над развёртыванием больших e-commerce систем. Немного фактов о Николе: он активно жестикулирует, когда говорит (будучи итальянцем), живёт в Амстердаме и ездит на Дукати. Николу можно найти в Twitter под псевдонимом @durdn [4].
Автор: detouched
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/git/117343
Ссылки в тексте:
[1] Git 2.8.0: https://git.kernel.org/cgit/git/git.git/plain/Documentation/RelNotes/2.8.0.txt
[2] стандартных предупреждениях об использовании rebase: https://www.atlassian.com/git/tutorials/merging-vs-rebasing/the-golden-rule-of-rebasing/
[3] Никола Паолуччи: https://developer.atlassian.com/blog/authors/npaolucci/
[4] @durdn: https://twitter.com/durdn
[5] Источник: https://habrahabr.ru/post/281188/
Нажмите здесь для печати.