Интегрируем Git в Sublime Text

Автор оригинала: Chris Sevilleja
  • Перевод


Ускорение рабочего процесса и повышение производительности очень важны для разработчиков. Когда мы работаем — каждая секунда на счету, и время, которое мы проводим за решением повседневных задач (таких, как работа с git) в идеале можно было бы сэкономить и потратить более продуктивно. В этой статье мы рассмотрим способ ускорения работы с Git путем его интегрирования прямо в Sublime Text.

Ниже вы можете увидеть пример того, как быстро Git работает в связке с Sublime.



Требования


Давайте посмотрим, что нам потребуется для того, чтобы ускорить процесс работы с Git.

Обратите внимание: если вы устанавливаете Git на Windows, убедитесь в том, что при установке вы выбрали опцию "Run Git from the Windows Command Prompt". Все оставльные настройки можно оставить по умолчанию.



Git в командной строке


Обычно, когда я работаю в Sublime text и хочу сделать коммит, я открываю командную строку и печатаю следующее:

git add -A
git commit -m 'some crazy stupid message here'
git push



А теперь давайте сэкономим наше драгоценное время и проделаем все то же самое через Sublime text.

Git в редакторе Sublime Text


Если вы откроете окно команд (ctrl+shift+p) после установки плагина и напечатаете "git", то вы увидите доступные команды для работы с Git.



Одно из преимуществ командной строки Sublime перед терминалом — это поддержка автокомплита. Теперь вам не придется печатать всю длинную команду «git add -A», достаточно всего лишь набрать "add", что, в свою очередь, тоже позволяет сэкономить время.



Commit VS Quick Commit


Следует отметить, что плагин Git предоставляет 2 способа совершить коммит. Их главное отличие заключается в том, что "Quick commit" откроет маленькое окошко, в котором достаточно ввести текст коммита, а "Commit" откроет отдельный файл, в котором также будут отображаться изменения в проекте.

Ниже вы можете увидеть Quick commit и commit в действии.

Quick Commit


Commit

После редактирования текста коммита достаточно просто закрыть файл.

Add, Commit, и Push в Sublime Text


Если мне надо отправить все изменения на сервер, то весь процесс выглядит так:

ctrl + shift + p, печатаю add
ctrl + shift + p, печатаю quick, затем набраю текст коммита
ctrl + shift + p, печатаю push



Совет: если вы хотите добавить все изменения и закоммитить их за один шаг, достаточно воспользоваться командой "Quick Commit". Она будет эквивалента команде
git commit -am "добавляем изменения и коммитим!"


Заключение


Просто попробуйте поработать с git таким способом, и вы увидите, как много времени можно сэкономить. Кроме того, следует отметить, что функциональность плагина не ограничивается командами commit и push — есть также и другие команды, позволяющие, например, оперировать ветками. Я настоятельно рекомендую ознакомиться со всеми возможностями плагина, чтобы обеспечить максимально комфортную и быструю работу с Git.

UPD.

Мне тут подсказали, что можно настроить горячие клавиши для всех трех команд через Key Bindings:

{ "keys": ["super+shift+plus"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "Git: Add..."} },
{ "keys": ["alt+shift+plus"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "Git: Commit"} },
{ "keys": ["ctrl+shift+plus"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "Git: Push"} },

{ "keys": ["ctrl+shift+ü"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "HG: Quick Commit"} }
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 42

    +5
    > Просто попробуйте поработать с git таким способом, и вы увидите, как много времени можно сэкономить.
    Вы не поверите сколько времени можно сэкономить если воспользоваться SourceTree или аналогичными инструментами.
      +6
      Не не не. Там мышкой двигаь надо…
        –1
        Под мак есть Git Tower — лучше GUI для git нет.

        Конечно все можно делать и в консоли, но вот разрешение конфликтов, или например git flow — удобнее в GUI
          +4
          Цена конская у этого Tower, 60 баксов за Git-клиент? Тот же SourceTree покрывает большую часть потребностей, если нужно визуально что-то делать
            +1
            Цена конская, но он стоит того если конечно вы делаете 20-30 коммитов в день, ведете десяток репозиториев и мерджите ветки других разработчиков в основную. SourceTree бесплатен, но гораздо менее удобен.
            Разница в куче всяких интерфейсных мелочей.

            Да и Sublime Text тоже не бесплатен, за хорошие инструменты приятно заплатить, если они заметно облегчают ежедневную работу. А для ведения одного репозитория с личным проектом — только командная строка, безусловно!

              0
              Возможно и есть удобные мелочи, кто же спорит. А вообще у меня много репозиториев, в некоторых по 5-10 веток, ежедневно по 20-30 коммитов вполне. Не поверите, но командную строку использую крайне редко, а мерджить приходится по 20 раз в день ;)
              • НЛО прилетело и опубликовало эту надпись здесь
              0
              А чем SourceTree не подходит?
                0
                Почти у всех моих знакомых тормозит push, на порядок дольше, чем из консоли.
                  0
                  По умолчанию SourceTree пушит все ветки, что замедляет и создает неудобства если другие ветки отстали. Если переключить на пуш текущей то все довольно шустро.

                  Хотя мне после недавних изменений тоже некомфортно немного.
                0
                Пользую консоль и горя не знаю. Разрешение конфликтов делаю через встроенный в PHP Storm компонент для работы с системами контроля версий.
              +14
              SourceTree штука замечательная. Но увы под Linux отсутствует. Только Win/Mac.
              А для Sublime еще порекомендую GitGutter
              Скрытый текст
              image

                +2
                Спасибо за ценный совет!
                  0
                  Для линукса есть SmartGit
                    0
                    Для коммерческих целей тулза платная.
                    0
                    Я ждал именно этот плагин в статье.
                  +2
                  Иногда хочется более гибкой работы со всем git CLI, причем не выходя из редактора. Я по такой причине перешел недавно на Emacs :-)
                    +2
                    image

                    А дальше пишу любую git команду. Например «pull --rebase»
                    +1
                    На самом деле, тупиковый путь. Основной минус интеграции git в sublime text заключается в отсутсвии в сублайме возможности связывать команды в цепочки. Если проект большой, то git достаточно много времени тратит на коммит (особенно если где-нибудь в хуках висит скрипт, проверяющий стиль кода). Гораздо оптимальнее — писать маленькие функции-хелперы в .bashrc. и вызывать их.

                    Реальный пример:

                    gcommit "$(current-task): Fix compilation." && gfetch && grebase origin/master && gforce-push origin $(current-branch) && gcheckout -f origin/master -B wp/PROJECTNAME-23240/1 && rebuild
                    


                    Набрав такую команду можно пойти налить чаю и вернуться к тому моменту, когда все закончится.

                    Под капотом
                    ~/.bashrc:
                    function gcommit { git commit -a -m $@; }
                    function gfetch { git fetch $@; }
                    function grebase { git rebase $@; }
                    function gforce-push { gpush -f $@; }
                    function gpush { git push $@; }
                    function gcheckout { git checkout $@; }
                    
                    current-branch { git rev-parse --abbrev-ref HEAD; }
                    current-task { current-branch | sed -E 's%^.*/(.*)/.*$%\1%'; }
                    
                    function rebuild {
                    # специфична для способа сборки проекта
                    }
                    


                      +6
                      Это же неудобно жутко. В чем сложность переключиться на окно терминала и воспользоваться всем возможным функционалом и мощностью?
                        +1
                        Особенно если тайлинг. Или drop-down терминал.
                        +2
                        Одно из преимуществ командной строки Sublime перед терминалом — это поддержка автокомплита.

                        В ZSH есть автокомплит git
                          +2
                          В bash тоже работает автокомплит для гита
                            0
                            А в oh-my-zsh есть плагин для гита.

                            gup -> git pull --rebase (git update)
                            gp -> git push
                            gca -> git commit -v -a

                            Полный список
                            0
                            Одно из преимуществ командной строки Sublime перед терминалом — это поддержка автокомплита.

                            А чем плохи алиасы из нескольких букв в командной строке?
                              +3
                              Самый лучше GUI для работы с гитом под Linux это… Intellij Idea. Сам пользуюсь Sublime Text, Idea стоит для работы с Git для разрешения конфликтов, просмотра истории и т.д.
                                +3
                                Я вот тоже заметил, что для выполнения стандартных простых действий типа commit/push/pull мне вполне хватает Idea (особенно учитывая удобный просмотр диффов тут же в IDE). Ну а если нужно сделать сквош, черри-пикнуть коммит из другого репозитория или еще что-нибудь в таком духе, то тут уже лучше терминала все равно ничего не придумаешь.
                                +6
                                Серьёзно? «Как установить плагин в ST и прочитать доки» на Хабре? Давайте еще про SVN почитаем, чего уж там.
                                  0
                                  Также есть полезный плагин для подсветки изменений с последнего коммита (показывает при сохранении) — github.com/gornostal/Modific
                                    0
                                    Странно, что не был упомянут проект SublimeGit.
                                      0
                                      Пользовался подобной вещью для ST, только названия не помню, может даже именно этот плагин, кстати, очень похож. Неудобства появляются когда у вас не один проект в дереве, а несколько и когда вам недостаточно простого add/pull/commit/push, а нужен ещё и git flow… В итоге вернулся к терминалу.

                                      А в целом по статье: такую статью можно написать про каждый плагин, а их там туева хуча. Любой кто задумывался над вопросом интеграции ST и git, может легко найти нужный плагин или группу плагинов, почитать readme.md на гитхабе и попробовать его в деле. Не вижу смысла в целой статье, хотя тут и есть симпатичные скриншоты.
                                        +1
                                        Не в обиду автору, можно было выбрать для перевода что-то более значимое, ибо в этой статье и переводить особо ничего не нужно, да и все показано на картинках.
                                        Добавлю, что существует еще коммерческий плагин sublimegit.net, для же себя выбрал SourceTree или, в некоторых случаях, просто Терминал.
                                          0
                                          попробуйте magit, он намного проще и быстрее. Не нужно постоянно искать команды в меню.
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              +2
                                              В Brackets режим «Для домохозяек» еще удобней и быстрей (c плагином brackets-git).
                                                0
                                                Тут мышкой надо тыкать? Удобнее и быстрее?
                                                  0
                                                  Там забиваются хоткеи в настройках для следующего:
                                                  • открыть панель плагина
                                                  • коммит текущего файла
                                                  • коммит всех файлов
                                                  • окно терминала с открытым путем к репозиторию
                                                  • пуш
                                                  • пул
                                                  • назад-вперед по изменениям
                                                  0
                                                  Del
                                                  0
                                                  Отличная статья!
                                                    0
                                                    Одно из преимуществ командной строки Sublime перед терминалом — это поддержка автокомплита
                                                    Так оно и в терминале есть: github.com/git/git/blob/master/contrib/completion/git-completion.bash
                                                      0
                                                      В zsh еще круче.

                                                      Но я подозреваю, что имелось ввиду, что автокомплит в Sublime все-таки fuzzy.

                                                      И хоть в том-же zsh есть коррекция ошибок, все-равно с fuzzy-поиском это не сравнится.
                                                      0
                                                      Если надо что-то по-быстрому закоммитить, использую SublimeGit. Для более сложных случаев — SourceTree.

                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                      Самое читаемое