Ответы пользователя по тегу Git
  • Где в проектах на Битрикс размещать папку .git?

    @lexnekr
    Всё зависит от вашей стратегии и от вашего проекта.

    1. Если сайт маленький, то обычно я размещаю в корне сайта. В gitignore вношу upload, как советовали выше.

    2. С точки зрения безопасности имеет смысл инициализировать на уровень выше. Чтобы 100% исключить доступ к файлам репозитория. Конечно вы и так должны ограничить доступ на уровне веб сервера, но мы же понимаем, что лучше подстелить соломки

    3. Если проект большой, может быть многосайтовость, то иногда имеет смысл делать несколько репозиториев. Тут возможны варианты:
    3.1 Проект большой, но 1. Тогда в проекте имеет смысл делать субмодули для /bitrix/, /local/, иногда отдельных модулей в них...
    3.2 Если проектов много (многосайтовость) с 1 общим ядром, то я обычно делаю полноценный репозиторий в ядре (/bitrix/), и по репозиторию в публичке, где исключаю /bitrix/ через gitignore.

    P.S. Недостаток держать ВЕСЬ /bitrix/ в репозитории в том как будут происходить обновления. После них будут следовать горы файлов в коммит. И такой коммит фиг откатишь (т.к. при обновлении БУС затрагивается ещё и БД), именно поэтому выше вам рекомендовали убрать его из репы. Но т.к. иногда в этом каталоге есть и свои файлы (как модули, так и какие-то правки ядра), то бывает потребность всё же делать как я описал.
    Ответ написан
    Комментировать
  • Как незаметно изменить историю git?

    @lexnekr
    rebase в помощь.
    Но вообще идея КРАЙНЕ ПЛОХАЯ.
    Вы сломаете историю всем, кто пользуется репозиторием кроме вас.
    Ответ написан
    Комментировать
  • Как настроить PHPStorm для работы с удалённым GIT без bare?

    @lexnekr
    IDE вам честно написала, что всё уже закоммичено и совпадает с тем, куда вы пытаетесь пушить.
    Есть мнение, что вы забыли проиндексировать изменения перед коммитом, поэтому локально их не закоммитили, а потому и пушить нечего.
    Ответ написан
    Комментировать
  • Как выполнить git pull определенной ветки?

    @lexnekr
    git pull origin from:to
    1. from - имя ветки, которую подтягиваем
    2. to - имя ветки, В которую заливаем
    Ответ написан
    2 комментария
  • Как использовать контроль версий для сайта на обычном хостинге?

    @lexnekr
    Удивительно, но некоторые "обычные хостинги" (например, beget, не рекламирую) умеют использовать git. Как правило делается это по запросу.
    Уточните у техподдержки хостера.
    Ответ написан
    1 комментарий
  • Что произогло с Contribution в Github?

    @lexnekr
    Contribution отражает вашу активность.
    Чем темнее квадратик, тем больше число коммитов в этот день.
    Однако активность (и цветовая градация) относительная.

    Пример.
    1. 1 день вы сделали 15 коммитов (этот день дует тёмный), остальные дни вы делали по 1 коммиту (эти дни будут светлые).
    2. Вы удаляете репо, который содержит все те 15 коммитов за 1 день.
    3. Github запускает пересчёт.
    4. Теперь у вас все дни по 1 коммиту, а значит и квадратики станут тёмными.
    Ответ написан
    2 комментария
  • Что хранится в папке .git? Нет ли там данных для авторизации на GIT?

    @lexnekr
    Некоторые особо "умные" пользователи подключаются к удалённому серверу не по ssh, а по https и хранят логин-пароль прямо в строке подключения. Чтобы не вводить их каждый раз при Push'е.
    Вот в этом случае да, пароли будут лежать в конфигурационном файле в папке /.git/
    Но в целом такая идея хранения подключения плоха и без публикации папки с гитом.
    Ответ написан
    1 комментарий
  • Как получить список всех коммитов всех веток в GIT?

    @lexnekr
    ещё полезняшки:

    $ git log test..master  # коммит достижимый из ветки master но не из test
    $ git log master..test  # коммит достижимый из ветки test но не из master
    $ git log master...test # коммит достижимый или из test или master, но не из обоих
    $ git log test              # коммит достижимый из ветки test (даже если текущая master)
    Ответ написан
    Комментировать
  • .Gitignore - как исключить вложенную папку через одну?

    @lexnekr Автор вопроса
    Нашёл решение сам.

    1) исключаем папку
    admin/*

    2) игнорируем исключением дочки
    !admin/modules/

    3) исключаем содержимое дочки
    admin/modules/*

    4) игнорируем исключение дочки
    !admin/modules/name/

    ИТОГО:

    admin/*
    !admin/modules/
    admin/modules/*
    !admin/modules/name/
    Ответ написан
    2 комментария
  • GitHub, как начать?

    @lexnekr
    Вопрос наверное слишком общий. Не буду приводить ссылок - вы комментариях выше их достаточно.

    Суть в том, что гитхаб - это ЦЕНТРАЛЬНЫЙ репозиторий, центральное хранилище вашего проекта. Т.е. должны быть ещё и другие хранилища.

    Если вы и ваши коллеги все вместе ведёте работу на 1 сервере (т.е. все вместе правите файлы прямо там), то ничего особо не выйдет.
    А вот если у вас у каждого есть своё рабочее место, а есть сервер, где вы осуществляете сборку или тестирование работы всех участников, то это норм.

    Обычно идеология примерно следующая.
    - Вы у себя что-то сделали, закоммитили
    - Отправили в центральный репозиторий (например, на гитхаб)
    - Ваши коллеги могут из центрального репо забрать ваши наработки и соединить со своими. У себя. В своих локальных разработках. А потом поступить аналогично тому, как сделали вы.
    - Ну и вы можете из центрального репо накатить на сервер изменения (можете конечно и из любого другого, но лучше в начале так не развлекаться).

    Для работы локально подойдёт клиент. Их много, они разные. По ссылкам есть примеры.
    Для работы на сервере придётся освоить консоль. SSH. Ну или поставить веб-консоль её эмулирующую (но это дополнительная головная боль).

    Дальше вы разрабатываете, коммитете изменения (т.е. сохраняете результат в некие пакеты), меняетесь друг с другом и центральным сервером, накатываете на сервер для проверки. Ну и возвращаетесь к более ранним коммитам, если вдруг всё сломали...
    =)
    Ответ написан
    Комментировать