Управление GIT-ом через веб-консоль на PHP

    Я люблю git. Я использую его во всех своих проектах. Поэтому я решил сделать веб-консоль для управления git-ом на PHP.


    Реализовать её я решил в виде одного файла: console.php.
    Достаточно всего лишь бросить его в папку репозитория, открыть его в браузере и можно управлять git-ом. В консоли реализована история команд в localStorage и в планах сделать автокомплит. Так же можно выполнять команды напрямую вызывая «git.php?command». Это полезно, например, для автодеплоя.
    Но есть, конечно же, ограничения. Во-первых должна быть разрешена функция proc_open() и папка .git должна быть того же пользователя(www-user).

    Свою консольку я смог запустить даже на шаред хостинге от masterhost-а.
    Потестировать её можно здесь. Там доступно всего несколько команд из-за соображений безопасности.

    Код выложен на github: github.com/elfet/console

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

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

      +1
      Полезная штука, полезная
        +1
        Полезная-то полезная и выглядит неплохо, но для чего ее можно использовать? Обновлять модули? Сохранять клевенькие репозитории на память на любимом сервере? Наверное, я еще просто не постиг таких глубин контроля версий…
          +1
          Легко. Допустим, контора. У конторы в офисе сервер. На сервере убунта. Доступ к файлам через sabma. У работников — Windows.
          Всё, классическая консоль становится ужасным решением. А тут — хорошо.
            0
            Замечу, что при работе через ssh файлы, созданные гитом будут недоступны для тех-же tortoisegit, доступных через samba, т.к. файлы созданные другим пользователем, доступны только на чтение.
        +3
        И все таки, зачем?
          +1
          Видимо, дабы рулить без SSH и шелла.
            +1
            Учитывая что по SSH все делается быстрее и безопаснее — логика мне все-же не понятна… :)
          0
          Закинул в директорию с проектом на сервере, и больше не надо лезть в консоль для коммита.

          Спасибо, буду использовать!
            +2
            › git log
            Sorry, but this command not allowed. Try these:


            Пичаль. Может кому-нибудь и нужно будет, но уж точно не мне. SSH && cli мое всё!
              0
              ставлю 5 баксов у вас csrf
                –1
                ох лол, хоть POST бы ради приличия?
                elfet.ru/example/git.php?ls
                  0
                  Я использую это для автодеплоя: my-secret-git.php?pull
                  0
                  echo git.php >> .gitignore?
                  +1
                  Есть такая штука как shell-in-a-box, которую можно использовать как безопасный веб-клиент для ssh, например. Она используется в составе TurnKey virtual appliances.
                  Удобно, когда любимой kiTTY/PuTTY нет под рукой.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Это, судя по всему, скриптик на локалке побаловаться, не более ;)
                      Я бы на продакшн/стейджинг такой файл не заливал.
                        +1
                        Там поддерживается фильтр комманд, вот без фильтра легко хакнуть.
                        Да, неплохо для тестовых сайтов (можно логин пароль прикрутить еще), а на продакшне и .git/ не будет.
                          0
                          Естественно не предлагаю :)
                          По для разработки думаю может кому-нибудь пригодиться.
                          +1
                          Категорически нельзя использовать в общем доступе! SSH — наше все!
                            0
                            5.2.12 (мастерхост) ругается на то, что не знает __DIR__, работает — dirname(__FILE__).
                            Хотя пхп все-равно надо перекомпилировать, ибо проц_оупен недоступен.
                              0
                              На местер хосте можно перейти на 5.3, поставить git и собрать свою php с proc_open.
                                0
                                Имхо softm прав, если всё что нужно от 5.3 это __DIR__ то уж лучше dirname(__FILE__) и в требованиях PHP 5.0+. Вряд ли резонно переводить проекты на 5.3 только из-за git.php :)
                                  0
                                  Насчет proc_open() — можно и на exec фоллбэкаться, впрочем и он может быть выключен.
                              +1
                              Везет Вам, у вас мастерхост работает.
                              У доброй половины их клиентов сейчас все лежит. ;)
                                0
                                Ох, не напоминайте! :)
                                +1
                                Рекомендую SourceTree.app для OS X.
                                Извините, если потревожил чувства.
                                  0
                                  За код:

                                  ignore_user_abort(true);
                                  set_time_limit(0);

                                  я своим подчиненным руки отрываю, чтобы почем зря не вешали сервер
                                    0
                                    Вот бы такое только без PHP а сразу из браузера из JS.
                                      0
                                      Ну можно сделать бэкенд и на node.js. Но тогда придётся запускать на сервере его.
                                        0
                                        Я имел ввиду без бекенда, чтобы можно было сделать локальный GIT клиент на JS в браузере. Вот как обычные десктоп клиенты, только в браузере. Например открываешь mygitclient.com/ и там открывалось веб приложение которое работало с локальной рабочей копией. Получаем все преимущества веб приложения замещающего десктопный клиент.

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

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