<rmcreative>

RSS

Все заметки с тегом «Git»

Можно уточнить:

    (1)
  1. (1)
    (1)
  1. (1)
    (2)
    (1)
    (1)
    (1)
  1. (1)
  1. Форсируем LF для всего проекта

    27 января 2022

    Форсировать линуксовое окончание строк LF вместо CRLF из Windows полезно потому как тот же Docker CRLF очень не любит. Настраивать локально что-то не очень приятно, поэтому просто замечательно что есть возможность форсировать это для всей команды средствами git.

    1. В корне репозитория создаём .gitattributes, пишем туда * text=auto eol=lf первой строкой.
    2. Делаем коммит с этим изменением, пушим.

    Собственно, всё. Осталось локально себе сконвертить всё в LF. В этом также поможет git:

    1. git rm --cached -r .
    2. git reset --hard
    Комментировать
  2. Запоминаем пароли к ssh-ключам в ssh-agent

    12 мая 2021

    Вводить пароли к ssh-ключам того же git каждый раз немного достаёт и неплохо было бы чтобы оно как-то само. Делается при помощи ssh-agent. Примерно так же делается и на Linux-ах и на маке и в Windows с git-bash.

    1. Добавляем запуск ssh-agent (смотрите ниже) в .bash_profile. Скрипт обычно лежит в домашней директории пользователя. В Windows это c:\Users\username.
    2. Идём в конфиг OpenSSH, обычно это .ssh/config в домашней директории пользователя. Если запоминать надо пароли ко всем ключам, добавляем туда AddKeysToAgent yes первой строкой. Если к отдельным, добавляем в конфиги самих ключей.
    3. Открываем новую консоль. Делаем какое-то действие с запросом пароля, вводим пароль.
    4. Всё, пароль запомнен, больше спрашивать не будет.

    Скрипт для запуска ssh agent:

    # start SSH agent
    SSH_ENV=$HOME/.ssh/environment
     
    function start_agent {
         echo "Initializing new SSH agent..."
         /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
         echo succeeded
         chmod 600 ${SSH_ENV}
         . ${SSH_ENV} > /dev/null
         /usr/bin/ssh-add;
    }
     
    # Source SSH settings, if applicable
     
    if [ -f "${SSH_ENV}" ]; then
         . ${SSH_ENV} > /dev/null
         #ps ${SSH_AGENT_PID} doesn't work under cywgin
         ps -efp ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
             start_agent;
         }
    else
         start_agent;
    fi
    5 комментариев
  3. git churn

    28 марта 2020

    Churn - полезный инструмент, позволяющий быстро выделить в проекте область для более пристального рассматривания. Посчитать его можно при помощи git при помощи bash-скрипта за авторством Gary Bernhardt:

    git-churn --since='1 month ago'

    Получим список файлов проекта с количеством правок в этих файлах. Например, для директории framework Yii 2 это будет:

    1 framework/classes.php
    1 framework/data/Sort.php
    1 framework/db/ActiveQuery.php
    1 framework/db/sqlite/QueryBuilder.php
    1 framework/UPGRADE.md
    1 framework/web/Controller.php
    1 framework/web/Response.php
    2 framework/helpers/BaseHtml.php
    2 framework/web/UrlManager.php
    3 framework/db/Connection.php
    3 framework/db/oci/Command.php
    3 framework/validators/StringValidator.php
    3 framework/web/Request.php
    4 framework/base/Application.php
    4 framework/BaseYii.php
    4 framework/db/mysql/QueryBuilder.php
    7 framework/db/Command.php
    29 framework/CHANGELOG.md
    

    Наиболее часто менялись Command и QueryBuilder, стоит присмотреться, достаточно ли там тестов чтобы ничего при изменениях не ломалось, а заодно посмотреть, можно ли сделать так, чтобы изменений там требовалось меньше.

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

    20 сентября 2012

    Делается довольно легко. Особенно, если деплоить нужно только последний коммит из master.

    1. Ставим на сервере git.
    2. Делаем clone своего репозитория. Лучше использовать URL только для чтения вроде git://github.com/samdark/yiiframework_ru_cookbook.git.
    3. Берём код ниже, заменяем /var/www/path/to/your/git/root на путь к склонированному репозиторию. Вливаем в вебрут сервера.
    4. Идём на страницу своего репозитория на github → admin → service hooks → WebHook URLs. Добавляем там URL залитого скрипта. Там же смотрим актуальные IP серверов github и сравниваем с теми, что в скрипте.
    5. Проверяем, что у вебсервера есть права писать в склонированные директории (в том числе и в скрытый .git).
    6. Наслаждаемся автоматическим деплоем.
    22 комментария
  5. GitHowTo

    16 мая 2011

    Ещё одна неплохая обучалка распределённой системе контроля версий Git. Является переведёнными и переработанным Git immersion.

    Учимся

    Комментировать
  6. Новый трекер GitHub

    15 апреля 2011

    GitHub, наконец, обзавёлся нормальным трекером, что радует. Похоже, минусов, по сравнению с Google Code, практически не осталось, поэтому Yii2 наверняка будет размещён на GitHub.

    Итого, на сегодняшний день:

    • Git и GitHub очень популярны и притягивают сильных разработчиков.
    • Есть куча книг, и отличных гайдов в том числе и на русском.
    • Есть хорошие GUI: SmartGit и TortoiseGit.
    • Удобно будет работать с патчами.

    Единственное, чему пока не удалось найти аналог, так это автотеггингу в SVN: $Id $ в файле заменялся на ревизию, время и автора. Сейчас эта возможность активно используется для перевода документации.

    5 комментариев
  7. Getting Good with Git бесплатно

    5 октября 2010

    В течение октября есть шанс заполучить книгу про Git бесплатно.

    Для этого нужно зарегистрироваться на tutsplus.com. После этого можно скачать книгу с её странички.

    9 комментариев
  8. SmartGit

    9 декабря 2009

    Вышла первая версия кроссплатформенного Git-клиента производства syntevo, выпускающих также используемые мной SmartSVN и SmartCVS.

    Клиент как две капли воды похож на своих братьев. Пока не поддерживает Blame, Interactive rebase и Pickaxe, но скорее всего это скоро допилят.

    Пробуем

    2 комментария
  9. Git Community Book

    26 октября 2008

    Документация по системе контроля версий git на английском.

    Изучаем

    1 комментарий