Страницы

Поиск по вопросам

Показаны сообщения с ярлыком github. Показать все сообщения
Показаны сообщения с ярлыком github. Показать все сообщения

суббота, 11 апреля 2020 г.

Проверка синтаксиса rst-файла

#python #github

                    
У меня проблема с описанием (в формате rst, reStructuredText) пакета на pypi.

README.rst прекрасно форматируется на github и readthedocs но в pypi rst не работает.

Есть ли способ решить эту проблему без копипаста README (в README.md например)?
    


Ответы

Ответ 1



для проверки синтаксиса можно воспользоваться, например, программой rst2html (из пакета python-docutils). примерно так: $ rst2html README.rst > /dev/null README.rst:35: (WARNING/2) Literal block expected; none found. README.rst:66: (WARNING/2) Literal block expected; none found. README.rst:91: (WARNING/2) Literal block expected; none found. README.rst:119: (WARNING/2) Literal block expected; none found. README.rst:133: (WARNING/2) Literal block expected; none found. README.rst:142: (WARNING/2) Literal block expected; none found. из вывода видно, какие строки «не нравятся» парсеру. насколько я понимаю, нужно лишь добавить по пробелу в начало этих строк (а потом ещё и в 134-й: про неё будет warning после исправления 133-й строки). кстати, у этой программы есть и «основная» функция — генерация html: $ rst2html README.rst > readme.html после этого readme.html можно просмотреть в браузере. в том же пакете есть ещё ряд полезных программ, начинающихся с rst2 и делающих аналогичные преобразования в разные форматы: rst2latex rst2man rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml и у каждой из этих программ есть множество опций. подробности смотрите, например, с помощью программы man: $ man rst2html

четверг, 9 апреля 2020 г.

Composer и stable версии

#php #github #composer #packagist

                    
Веду небольшой пакет на github (оформлен в packagist), после создания релиза 2.0.0
- он показал его как стабильный. Потом, я нашел серьезную ошибку в реализации, и на
сколько я понимаю систему версионности, т.к. API не менялось, после коммита создал
релиз 2.0.1 (т.е. произошли исправления, не затрагивающие API), но packagist так и
считает версию 2.0.0 стабильной. Как перевести его на новую версию?

UPDATE:

{
    "name": "name/name",
    "description": "Desctiption",
    "authors": [
        {
            "name": "AuthorName",
            "email": "email@gmail.com"
        }
    ],
    "license": "MIT",
    "require": {
        "php": ">=5.3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "4.7.*",
        "satooshi/php-coveralls": "dev-master"
    },
    "autoload": {
        "psr-4" : {
            "NameSpace\\" : "src/"
        }
    }
}

    


Ответы

Ответ 1



В composer.json на github можете добавить version: "2.0.1" и еще новый тег v2.0.1. На packagist есть кнопка для обновления информации. UPD Так же вы можете создать новую ветку 2.0 в которой вести правки минорной версии и Packagist сразу их подцепит. Дока по тегам для композера UPD 2 По наставлению @Etki – оказывается в composer.json действительно лучше не указывать версию. Документация Соответственно добавление тега и/или ветки с версией будет достаточно. UPD 3 Как выяснилось, проблема была на стороне https://poser.pugx.org, который кешировал информацию о пакете.

четверг, 2 апреля 2020 г.

Как удалить ссылку на коммит из Issue? | Коммит не видно через git log

#git #github

                    
Есть репозиторий: https://github.com/w3lifer/yii2-i18n-js.

Нужно было сделать amend сообщения последнего коммита, чтобы тот ссылался на соответствующее
Issue:

git commit -m 'closes #1: ...' --amend
git push -f
git tag -d 2.1.1
git push origin :refs/tags/2.1.1
git tag 2.1.1
git push --tags


Соответственно, автоматически закрылся Issue #1; но как оказалось, я ошибся в номере
— нужно было указать номер #2. Тогда я повторил процедуру, но уже с верным номером:

git commit -m 'closes #2: ...' --amend
git push -f
git tag -d 2.1.1
git push origin :refs/tags/2.1.1
git tag 2.1.1
git push --tags


Я ожидал, что ссылка в Issue #1 исчезнет и он откроется автоматически, но этого не
произошло: там она осталась и указывает на коммит closes #1: ....

Из всего этого у меня возникло несколько вопросов.


Разве коммит closes #1: ... не должен был исчезнуть?
Почему его нигде не видно: ни в git log, ни через gitk, ни через IDE, однако можно
сделать его checkout?
Как его можно удалить из Issue #1?




Насчёт третьего вопроса: пробовал, если просто сослаться на Issue без ключевых слов
для закрытия, а потом удалить ссылку из сообщения, то в Issue ссылка исчезает.




https://github.com/isaacs/github/issues/1081
https://stackoverflow.com/q/21983964/4223982

    


Ответы

Ответ 1



Git не удаляет коммиты и не перезаписывает их. Когда пользователь делает git commit --amend, создается новый коммит, а старый становится невидим, если не привязать его к какой-нибудь ветке. Если вы знаете хэш коммита, то на него можно переключиться командой git checkout 5ccd263b4 (где 5ccd263b4 - ваш хэш). Гитхаб адресует коммиты по хэшу (это хорошо заметно в ссылке, что вы предоставили), потому и отображает ссылку корректно. Плюс к сказанному: у гитхаба скорее всего нет никакой процедуры отслеживания переписывания истории, т.к. сам факт переписывания истории в публичном репозитории является плохой практикой.

Git требует пароль при каждом push

#git #github

                    
Все работало верно, но после несколько хаотичных экспериментов git стал просить логин
пароль при каждом push и в IDE и в терминале. Помогите пожалуйста это исправить назад.
Но ssh ключи я кажется не трогал. 

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/triodjangopiter/account-manager
  Push  URL: https://github.com/triodjangopiter/account-manager
  HEAD branch: master
  Remote branches:
    feature/custom_filter tracked
    feature/toolbar       tracked
    master                tracked
  Local branches configured for 'git pull':
    feature/custom_filter merges with remote feature/custom_filter
    feature/toolbar       merges with remote feature/toolbar
    master                merges with remote master
  Local refs configured for 'git push':
    feature/custom_filter pushes to feature/custom_filter (up to date)
    feature/toolbar       pushes to feature/toolbar       (up to date)
    master                pushes to master                (up to date)

    


Ответы

Ответ 1



Это довольно частая ошибка. origin нужно заменить на ssh ссылку: git remote set-url origin git@github.com:triodjangopiter/account-manager.git

вторник, 31 марта 2020 г.

Как залить несколько проектов на GitHub

#github

Ребята, пыталась залить второй проект, но не получилось. пользовалась этой инструкцией:

Использовать папки-поддиректории:

nickname.github.io - корневая директория сайта (главная страница)
nickname.github.io/site 1/ - поддиректория 1 (папка сайта 1)
nickname.github.io/site 2/ - поддиректория 2 (папка сайта 2)
nickname.github.io/site 3/ - поддиректория 3 (папка сайта 3)


но все равно не получается, подскажите что не так?
    


Ответы

Ответ 1



Для решение проблемы нужно выбрать Settings-GitHub Pages-Source-master branch

воскресенье, 29 марта 2020 г.

git-push для отдельной директории

#git #github #git_push

Resourse:

Структура проекта

.git
build/
fonts/
node_modules/
src/
.gitignore
gulpfile.js
package.json
package-lock.json


файл .gitignore
Это те файлы, которые мне не нужно отправлять в репо

node_modules/
.idea/
gulpfile.js
package.json
package-lock.json
src/
fonts/
.git/


Summary:
Когда произвожу git push origin push 
почему-то в  репозиторий появляются такая структура

build
fonts
src
.gitginore


Question:

Как же сделать, чтобы отправить только папку build(только содержимое этой папки,
а не саму папку)??
Заранее приношу извинения... Я не особо силен в git
    


Ответы

Ответ 1



Система контроля версий не предназначена для того, чтобы оперировать файлы. Она нужна только для того, чтобы хранить их историю. Всё остальное должны выполнять другие утилиты. Когда Вы делаете коммит, в репозиторий отправляется ровно та структура, которая сейчас есть рядом с .git-файлом, за исключением пустых папок (если в них нет .gitkeep и объектов из .gitignore). Поэтому Вы видите такую структуру. Таким образом, Ваша задача распадается на 2 несколькими способами. Способ 1: Перенести всё из build в основную репу Добавить в коммит только те файлы, которые Вам нужны Сделать коммит Способ 2: Перенести всё из build в основную репу Добавить все файлы, которые Вам НЕ нужны в .gitignore Сделать коммит Способ 3: Создать в build отдельный репозиторий Сделать коммит Как переносить файлы, это дело Ваше. Я предлагаю использовать утилиту make, сделав соответствующее правило. В таком случае, это будет выглядеть более технологично. Отдельно можно обсудить каждый из этих вариантов, но все они выглядят как костыли, поскольку пушить бинарные файлы в репу -- это плохо. Я бы сказал, что это антипаттерн. Бинарные файлы собираются под конкретную архитектуру. Кроме того, человек может легко собрать соответствующий файл сам или забрать из последнего релиза.

Как выкладывать билд на Github?

#github

Имеется: исходный код проекта на Python/PyQt5, и желание его выложить на GitHub.
Но выложить хочу не только исходный код, а и билды актуальной версии. Как это лучше
сделать?
Мне очень нравится организация репозитория вот здесь:
https://github.com/pyfa-org/Pyfa
Как создать такую же страничку с релизами?
https://github.com/pyfa-org/Pyfa/releases
    


Ответы

Ответ 1



На странице releases вашего репозитория есть кнопка draft a new release - там как раз и можно всю красоту навести - есть заголовок, поле ввода для текста с поддержкой markdown разметки и можно прикрепить файлы.

пятница, 20 марта 2020 г.

Выдаёт ошибки в Git

#git #github

Я начал знакомство с Git. Я создаю репозиторий для отслеживания изменений в своём
проекте. следующим образом.

 git init 
 git config --global user.name "Your Name" (вписал, что надо)
 git config --global user.email you@example.com


Дальше создал файл  .gitignore, отобразил и зафиксировал все изменения.
Потом перешёл к созданию коммита для отправки.

git commit -m "My first commit ever"


Дальше связал локальный репозиторий с гитхабовским

git remote add origin https://github.com/MK/my-first-app.git


Но, когда я хочу отправить локальный коммит в репозиторий на гитхаб

git push origin master


Выдаёт это:

Fatal: HttpRequestException encountered.
Username for 'https://github.com': MK
Password for 'https://MK@github.com':
To https://github.com/Mk/my-first-app.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/Mk/my-first-app.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


Что делать и как быть я не знаю, прошу помочь.
    


Ответы

Ответ 1



Если репозиторий на Github свежесозданный, и никем кроме вас не использвался - то скорее всего при создании репозитория вы нажали что-то вроде Initialize with readme прямо в интерфейсе гитхаба. Это добавило в ваш репозиторий на гитхабе стандартный коммит, которого локально у вас нет. Проверьте историю коммитов на гитхабе, если там один шаблонный коммит - просто перепишите его принудительным пушем: git push -f origin master Если там есть нешаблонные коммиты - выясняйте, откуда они там взялись :)

Ответ 2



делай git pull origin master прежде чем делать git push.... всегда делай сначала pull, и только потом push

Ответ 3



Если у вас уже есть удаленный репозиторий, то вместо пары git init, git remote add лучше делать git clone. А в сложившейся ситуации у вас два варианта: Выполнить слияние (о чем написано в тексте сообщения об ошибке) Удалить историю в одном из репозиториев

пятница, 13 марта 2020 г.

Уйдут ли на gitHub игнорируемые файлы при коммите, если они отмечены в диалоге commit в AndroidStudio?

#android #git #android_studio #github #gitignore

Дано:


Файл с паролями, коий не надо заливать на GitHub.
В .gitignore этот файл прописан и в студии помечен серым цветом.




Проблема:

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



Вопрос:

Что таки произойдёт при коммит->пуш? Файл сохранится на GitHub и будет всем доступен
или просто в истории коммитов будет значится как добавленный в проект но существовать
физически будет только на моей машине из-за добавления в gitignore?

P.S.
т.к. в файле пароли и явки пробовать сам  опасаюсь(
    


Ответы

Ответ 1



Удалось решить проблему удалив файл из проекта, сделав коммит без него и добавив его снова. После этих манипуляций файл перестал появляться в списке файлов для коммита. Видимо надо сначала составлять .gitignore а потом уже только добавлять в проект игнорируемые файлы. Согласно ссылке @Yura Ivanov, для тех, кто умеет в командную строку достаточно выполнить такую команду для игнорирования файлов, добавленных до изменения .gitignore: git rm --cached

воскресенье, 8 марта 2020 г.

WebStorm Git (git repository cannot be cloned to an existing directory)

#git #github #phpstorm

В чем проблема? 



 12:53:22 Created Git repository in /Applications/MAMP/htdocs/workout_test
 12:59:47 Update canceled
 12:59:47 Can't update: no tracked branch
         No tracked branch configured for branch master.
         To make your branch track a remote branch call, for example,
         git branch --set-upstream master origin/master*
    


Ответы

Ответ 1



Думаю вот это должен сработать: git init git remote add origin PATH/TO/REPO git fetch git checkout -t origin/master Информация взята отсюда.

Ответ 2



Вам нужно удалить из Parent Directory в конце пути test_theme_wp, так же если существует эта папка на сервере её то же удалить. Parent Directory - это родительская папка в которой мы будем находиться перед клонированием. Directory Name - это имя папки которая будет создана в родительской категории в которую будет с клонирован текущий репозиторий. Перед клонированием если данная папка существует, то её необходимо удалить иначе шторм будет ругаться на неё.

Работа в команде c GIT

#git #github

Идет разработка проекта, добавляются новые люди в команду. Контроль версиями осуществляется
с помощью GIT. Разъяснить алгоритм подключения нового человека к работе над проектом.
Допустим последний коммит имеет название second. 


Создается новая ветка для нового разработчика
Он клонирует репозиторий проекта
Переходит в свою ветку


Вопрос 1: Я правильно понимаю алгоритм добавления нового разработчика к проекту?

Вопрос 2: После клонирования новый разработчик начинает свою работу, в своей ветке,
с коммита second?
    


Ответы

Ответ 1



Не нужно создавать под разработчика специально ветку. Это контрпродуктивно. Ветки создают разработчики под фичи (задачи/баги). Нормально, когда есть несколько долгоживущих веток (master/develop) и много краткоживущих под задачи. https://habrahabr.ru/post/106912/ http://danielkummer.github.io/git-flow-cheatsheet/index.ru_RU.html а также здесь на сайте:) При работе в команде, как правильно подтягивать изменения из веток в git?

среда, 4 марта 2020 г.

Проблема с commit and push

#git #github

15:06   VcsException
            Couldn't set user.name and user.email: error: could not lock config file
Z://.gitconfig: Permission denied
            during executing git -c core.quotepath=false config --global user.name
amirzayev


Z:// - это обшедоступный диск на работе, непойму почему Git  хочет попасть туда,
где это изменить и на что ?
    


Ответы

Ответ 1



Какая-то программа с помощью команды git -c core.quotepath=false config --global user.name amirzayev пытается сконфигурировать git. Вероятно, по адресу Z://.gitconfig нет файла конфигурации. Это очень логично — почему бы вдруг вашей конфигурации быть на общедоступном диске? Настройки user.name и user.email нужны для того, чтобы подписывать коммиты вашим именем и электронной почтой. Без них нельзя создать коммит, то есть не получится полноценно работать с Git. Настройте Git самостоятельно, есть шанс что тогда глупая программа не будет делать это за вас. Только подставьте свой настоящий адрес электронной почты: git config --global user.name Arzu Mirzayev git config --global user.email "amirzayev@mycompany.tld"

пятница, 28 февраля 2020 г.

Как подключиться к github из visual studio?

#visual_studio #git #github

В Visual Studio уже встроен Git.
Везде пишут только как скачать уже имеющийся удалённый репозиторий с git hub'а, но
нигде, как подключиться к гитхаб аккаунту из visual studio
Итак, у меня есть аккаунт на guthub, я создал приложение на локальном компе. Как
мне через visual studio без доп плагинов подключиться к своему аккаунту, создать новый
репозиторий и запушить папку с проектом в него?
    


Ответы

Ответ 1



Открыть Team Explorer (View - Team Explorer), затем кликните по иконке штепселя (Manage Connection): Более подробное описание в документации PS Ещё в меню View - Other Windows есть пункт Github, но я им не пользовался, так как гитхабом не пользуюсь так как мне приходится чаще с tfs работать.

Ответ 2



Для GitLab и Githab, как подключиться из VS к удаленному аккаунту и добавить локальный проект в новый пустой репозиторий. 1) Сначала на gitlab.com создаем новый проект с названием, соответствующим локальному проекту. На Github так же, только Репозиторий. 2) В Visual Studio в проекте нажимаем внизу окна кнопку «Добавить в систему управления версиями»=> git. 3) В разделе "Отправить в удаленный репозиторий" вводим URL-адрес созданного на сайте репозитория проекта, нажимаем Опубликовать. Проект должен загрузиться на сайт.

вторник, 25 февраля 2020 г.

Как установить плагин для RoR в RubyMine?

#github #ide #ruby #ruby_on_rails

Точнее, как выполнить эту строку из руководства?
$ script/plugin install git://github.com/technoweenie/restful-authentication.git

Или как это можно сделать не в IDE, если так будет удобнее?    


Ответы

Ответ 1



Добавьте в Gemfile: gem "restful-authentication" И RubyMine сама выполнит bundle install

Ответ 2



Руководство вероятно для 2.3-style rails. Вкладка Tools | Run Rails Script Клац на "..." и выбираем установку плагина Добавьте специфичные аргументы если требуется

Ответ 3



Иногда возникает потребность установки двух версий одного и того же гема, для этого открываешь терминал (вкладка обычно находится в левом нижнем углу RubyMine) и устанавливаешь командами: gem install some_gem -v 1.0 gem install some_gem -v 2.0 ну и там же проверяешь командой: gem list some_gem на выходе будет что-то типа *** LOCAL GEMS *** some_gem (1.0, 2.0)

понедельник, 24 февраля 2020 г.

Сократится ли размер репозитория на GitHub, если удалить из него часть данных?

#git #github

Если залить репозиторий до 400МБ, а потом удалить часть и оставить до 50МБ. То общий
размер репозитория будет всеравно 400МБ? Ну чтобы востановить снимок тех 350МБ их же
надо где-то хранить. 

Вопрос связан с ограничениями размера репозиториев в частности GitHub.
    


Ответы

Ответ 1



Естественно, если данные можно восстановить, то значит где-то они лежат. Гит хранит разницы между состояниями файловой системы. Так что в вашем примере будет примерно так: +400мб - залили файлы (не принимая в расчет сжимающиеся они или нет) +0,001мб - залили инфо о том что файлов больше нет Более подробно, о том как гит обращается с коммитами вы можете прочитать здесь: Каким образом git сохраняет изменившуюся строку при коммите?

вторник, 18 февраля 2020 г.

Как объединить ветки в git

#git #github

Я случайно создал новую ветку через checkout и закоммитился в нее. В этом коммите
все самые актуальные изменения, как мне перенести их в главную ветку, чтобы потом с
этой одной веткой работать? P.S. Сорри за нубский вопрос





Edit 1
    


Ответы

Ответ 1



Из главной ветки выполнить: git merge vasha-vetka

воскресенье, 16 февраля 2020 г.

Как объединить ветки в git

#git #github

Я случайно создал новую ветку через checkout и закоммитился в нее. В этом коммите
все самые актуальные изменения, как мне перенести их в главную ветку, чтобы потом с
этой одной веткой работать? P.S. Сорри за нубский вопрос





Edit 1
    


Ответы

Ответ 1



Из главной ветки выполнить: git merge vasha-vetka

суббота, 15 февраля 2020 г.

Как правильно выложить портфолио на GitHub?

#github #frontend

Как лучше разместить своё портфолио на GitHub? Вот например я недавно сверстал сайт,
прикрутил мини сервер который наполняет его товаром, но на GitHub ведь сервер не запустишь,
а если запускать просто HTML страницу, то не будет товара и некоторых функций. 

Или стоит просто в описание добавить чтобы качали Git и запускали у себя? А прямо
на GitHub просто сверстанную страницу показать?
    


Ответы

Ответ 1



GitHub — это портфолио вашего кода. Туда потенциальный работодатель может посмотреть, чтобы понять, какой код вы пишете, в каких проектах участвуете. Для портфолио с динамическими сайтами нужен традиционный хостинг. Для нетребовательных демонстрационных сайтов без каких-либо посетителей хватит самых дешёвых хостингов (возможно, даже бесплатных). GitHub хостит только статические странички. Отмечу, что по возможности стоит демонстрировать реальные работающие проекты, в которых вы приняли участие, а не поделки на коленке. Если вы кодируете back-end, то гораздо интереснее будет код. Если вы кодируете front-end или дизайните страницы, то работающий сайт уже будет важен.

Ответ 2



Не думаю, что показывать работодателю "интернет-магазин" это хорошая идея. Существует множество таких же, но уже готовых решений, к примеру, тот же VirtueMart. Кроме того, никто не любит вчитываться, язык бизнеса это наглядность. Маловероятно, что кто-то дойдет дальше регистрации на подобном ресурсе. В этом репозитории автор поднимает вопрос неверного оформления большинства портфолио программистов на Github Pages. Повсеместное использование Bootstrap с наполнением текстом-рыбой делает написание очередной поделки контрпродуктивным. Как решение проблемы предлагается создать PWA с максимальной компактностью, приметностью и актуальными использованными инструментами.

Как лайкнуть репозиторий на github через requests.post?

#python #python_3x #github #requests



Или может есть библиотека с такой возможностью ?
    


Ответы

Ответ 1



Звёздочку репозиторию можно поставить с помощью GitHub REST API v3: PUT /user/starred/:owner/:repo Есть много библиотек на Питоне, которые оборачивают это API. Легко свою создать: import requests class Github: def __init__(self, token, api_url='https://api.github.com'): self.token = token self.api_url = api_url self.headers = { 'Accept': 'application/vnd.github.v3+json', 'Authorization': 'token ' + self.token } def star(self, repo, owner): requests.put(f"{self.api_url}/user/starred/{owner}/{repo}", headers=self.headers).raise_for_status() Пример, чтобы звёздочку cpython поставить: import os github = Github(os.environ['GITHUB_OAUTH_TOKEN']) github.star(repo='cpython', owner='python') Чтобы попробовать, можно завести личный token. Для приложений, можно автоматически token создать.

Ответ 2



Прямые запросы к серверу GitHub через requests не помогут. Сделано это для безопасности Вам определенно пора узнать что такое API. У гитхаб оно располагается тут. А вот не плохой туториал

Ответ 3



GitHub REST API использует HTTP PUT (requests.put), чтобы добавить звёздочку репозиторию. Чтобы через HTTP POST (requests.post) это реализовать, можно использовать Github GraphQL API v4: data = graphql( '''mutation ($starrable_id: ID!) { addStar(input: {starrableId: $starrable_id}) { clientMutationId starrable { id viewerHasStarred } } }''', starrable_id=repo_id) где repo_id необходимо получить ещё одним GraphQL запросом: data = graphql( '''query ($repo: String!, $owner: String!) { repository(name: $repo, owner: $owner) { id } }''', repo='cpython', owner='python') repo_id = data['repository']['id'] где graphql() вызывает requests.post(): import os import requests def graphql(query, **variables): r = requests.post( 'https://api.github.com/graphql', headers={ 'Authorization': 'Bearer ' + os.environ['GITHUB_OAUTH_TOKEN'] }, json=dict(query=query.replace('\n', ' '), variables=variables)) r.raise_for_status() response = r.json() if 'errors' in response: raise RuntimeError(response['errors']) return response['data'] Можно использовать тот же token, что и REST API.

четверг, 13 февраля 2020 г.

Автодеплой с github.com на свой ftp

#git #html #php #github

Хотелось бы выработать примерно следующую схему. 
Имеется несколько проектов: промо-сайт - статический html, тема для wordpress - несколько
php файлов. Несколько разработчиков кодят на локальных машинах. Проекты под контролем
git. Репозиторий хранится на github. "боевая версия" лежит на хостинге, доступ через ftp.
Хочется, что бы при push`е на github происходила автоматическая выкатка на хостинг.
Пробовал делать по этой статье. Не работает и не понятно, как оно вообще должно работать,
ведь нигде не указываются параметры ftp. Попробовал codeship.io, аналогично. Читаю
статью на гит-хелп. Начиная с раздела The payload все туманно.
Правильно ли я понимаю, что вот эти вот Post-Receive хуки являются своего рода триггерами
событий, при помощи которых можно отследить, что прошел push, а дальше надо вызвать
какой-то скрипт, который осуществит отправку файлов на ftp?
Подскажите, пожалуйста, куда дальше копать?    


Ответы

Ответ 1



Да, тригерры, это такой механизм улучшения. Они срабатывают в определенных ситуациях и могут даже немного управлять процессом. К примеру, можно сделать триггер, который будет срабатывать перед коммитом и проверять орфографию (скрипт проверки орфографии нужно будет написать самостоятельно). Если проверка показала ошибки, то коммит можно отклонить с скрипта. В той инструкции делается следующее. Когда происходит push, то сервер github'а дергает скрипт. Этот скрипт с одной строки Вы располагаете у себя на сервере. А состоит он с одной команды - сделать git pull. Поэтому там и нет никаких ftp паролей. В этом способе есть только одна особенность - git должен быть на сервере. Но скорее всего он там есть.