Filter by tag: git
  • How to use git strategies2 min read

    pai sho

    Imagine you have a feature branch with the latest changes, which you need to rebase by master. The problem is master have some changes too, but not the ones you do really care about. Of course, it is possible to run the following code and one by one resolve all annoying issues.

    Continue   
  • Удаление паролей из истории Git2 min read

    Great Scott!
    Great Scott!

    Почему это важно?

    Любая система хранения версий кода создана с целью сохранения всех изменений проекта за всю историю его существования и (следует признать) любая система хранения версий справляется с этим отлично. Поэтому будьте уверены, если когда-то в вашем коде промелькнул пароль, токен или ключ — он не пропадет в тот момент, когда вы уберете его из актуального кода и злоумышленник сможет получить к нему доступ тогда, когда все уже забудут про сам факт существования важной информации в каком-то старом коммите.

    Continue   
  • Миграция с Mercurial на Git1 min read

    migration
    migration

    Иногда возникает необходимость продолжать работу над старыми проектами, в которых могут использоваться устаревшие системы версий — например, mercurial или, боже упаси, svn. К счастью, для перехода с mecurial на git не требуется начинать проект с чистого листа и терять историю изменений, есть утилита, которая всё сделает для нас сама.

    cd
    git clone git://repo.or.cz/fast-export.git
    git init git_repo
    cd ~/git_repo
    ~/fast-export/hg-fast-export.sh -r ~/mercurial-repo
    git checkout HEAD

    В итоге, в текущей папке мы получим самый настоящий git.

    Continue   
  • Ветка git в командной строке1 min read

    Если активная работа над проектом идет над несколькими ветками сразу, всегда полезно знать, на какой ветке в текущий момент находится указатель HEAD репозитария. Чтобы не полагаться на память, можно добавить отображение названия ветки в приглашение командной строки. Для этого откроем на редактирование ~/.bashrc

    export PS1='\[email protected]\h: \w\[\033[01;33m\]$(__git_ps1) \$\[\033[00m\] '

    Любуемся результатом:

    5a64a2a385b4dgit

    Но, по хорошему, лучше просто поставьте zsh — оно того стоит.

    Continue   
  • Как вежливо попросить git напомнить о миграциях2 min read

    Иногда важно помнить о том, что вместе с апдейтом кода появилась и новая миграция, которую нужно бы не забыть запустить. Первый вариант — git merge-base и еще несколько полезных команд. Задачу это решает, но требует множества действий — есть простор для фантазии и автоматизации. Пускай git сам напоминает нам о новых миграциях!

    Continue   
  • Первичная настройка git1 min read

    Алиасы

    Получение статуса

    git config --global alias.st status
    git st

    Наглядный лог

    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    git lg
    git lg -p

    Настройка пользователя

    git config --global user.name "Username"
    git config --global user.email "[email protected]"

    Добавим цвета

    git config --global color.branch auto
    git config --global color.diff auto
    git config --global color.interactive auto
    git config --global color.status auto
    Continue   
  • Как привести в порядок репозитарий3 min read

    Всегда приятно начинать проект с нуля, самому создавать под него репозитарий, определять принятый в нём стиль кодирования, да и многое другое. Но иногда нам достаются «трудные дети» с тяжелым прошлым, включающим мешанину табуляции и пробелов, разных способов обрыва строки, кодировок. Понятное дело, что все это приводит систему контроля версий к истерике. Но не беда. Linux to the rescue!

    Continue   
  • Актуальная версия Git на Ubuntu1 min read

    Добавляем репозиторий

    add-apt-repository ppa:git-core/ppa
    apt-get update
    apt-get install git-core

    Если в системе нет add-apt-repository, необходимо перед этим поставить еще один пакет

    sudo apt-get install python-software-properties

    Ура, у нас современная версия git!

    Continue