git


romy4 аватар

Красивый вывод git log


просто добавляем алиас в гит
$ 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

даст нам красивый вывод

0
Ваша оценка: Ничего

Удаление скрытых каталогов .svn и .git в каталоге с исходным кодом

У меня есть несколько программ, которые я устанавливаю из исходного кода. Это эмуляторы PlayStation 2 - pcsx2 и Nintendo GameCube и Wii - Dolphin. Первый проект использует систему управления версиями SVN, а второй - GIT. Иногда я скачиваю последний SVN/GIT и архивирую его, чтобы потом использовать старую версию при появлении регрессий в эмулируемых играх в новой версии эмулятора. Скрытые каталоги .svn и .git для меня лишние, они используются для обновления старой версии исходного кода. Они могут занимать больше места, чем нужный мне исходный код. Поэтому перед архивированием я их удаляю.

В этом мне помогла найденная в интернете команда. Для SVN:

$ find . -name .svn -print0 | xargs -0 rm -rf

Для GIT:

$ find . -name .git -print0 | xargs -0 rm -rf

или:

$ find . -name .git* -print0 | xargs -0 rm -rf
0
Ваша оценка: Ничего

Как скопировать файлы из другой ветки репозитория git

Что же делать, если нужно скопировать файлик из одной ветки git в другую? Браться за голову и делать это руками? Совсем нет. :)

Достаточно сделать в нашей ветке, где файла нет вот такое действие:

$ git checkout другая_ветка путь_к_файлу

и файл магически скопируется из другая_ветка. Останется добавить его и закоммитить.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

Видео про Git (на русском)

Докладчик: Linus Torvalds

http://www.youtube.com/watch?v=BtAlN4MaBr8

0
Ваша оценка: Ничего
ramok аватар

Примеры ежедневной работы с git

Каждодневный git где в 20 команд (eng.)

0
Ваша оценка: Ничего
ramok аватар

Информация о VCS (Version Control Systems) в приглашении zsh

При переходе на git пришла в голову мысль что было бы удобно видеть в приглашении zsh в каком состоянии локальный репозиторий.
Всевозможные rebase, am, merge и подобное сбивает с толку.
Сказано - сделано. Написал собственный велосипед. Потом нашел еще парочку велосипедов в интернете, разобрал на запчасти и прикрутил к своему велосипеду новенькие колеса и смазал педали. Но вскоре, к своему стыду, в мане zsh увидел уже готовый даже не велосипед, а целый танк с экипажем. И собакой в придачу.

Вот он

$ PAGER=less LESS='-p VERSION CONTROL SYSTEMS' man zshall

Творчески переосмыслив пример из мана вот что получилось

autoload -Uz vcs_info
 
# включаем только git svn svk cvs. Возможные VCS можно посмотреть командой vcs_info_printsys
zstyle ':vcs_info:*'              enable            git svn svk cvs
 
# домашняя директория из CVS репозитория. Исключаем ее и некоторые директории из домашнего репозитория
zstyle ':vcs_info:*'              disable-patterns "$HOME(|/.*|/bin)"
 
# Модифицированная версия из man zshcontrib, добавлены флажки staged и unstaged изменений
zstyle ':vcs_info:*'              actionformats    '%F{5}(%f%s%F{5})%F{3}%m%F{5}[ %F{2}%b%F{3}|%F{1}%a%F{5}][ %B%F{yellow}%c%F{red}%u%%b%F{5}]%f '
zstyle ':vcs_info:*'              formats          '%F{5}(%f%s%F{5})%F{3}%m%F{5}[ %F{2}%b%F{5}][ %B%F{yellow}%c%F{red}%u%%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat     '%b%F{1}:%F{3}%r'
 
zstyle ':vcs_info:*'              check-for-changes true
zstyle ':vcs_info:*'              get-revision      true
 
setopt prompt_subst
RPROMPT=$'${vcs_info_msg_0_}%b%F{cyan}%T%f'
 
 
# в zsh >= 4.3.11 можно add-zsh-hook precmd vcs_info
precmd ()
{
    vcs_info
}

Ну и как всегда: Live demo! Ж:-)

0
Ваша оценка: Ничего
ia аватар

выполнение команды в zsh в зависимости от синтаксиса введённой строки

Бывает так, что надоедает дописывать к началу скопированной в терминал, к примеру, из браузера, ссылки, саму команду, которая должна эту ссылку обработать. Например, вот так (где | - текущее положение курсора):

Если Вам это знакомо, то Вы понимаете, о чём я. Причём речь не обязательно о git:// для git clone; это может быть lp: или bzr:// для bzr branch, http:// - для wget или aria2c, file:/// - для cd ну и т.д. и т.п. - вариантов множество и примеры использования могут зависеть от того, с какими видами пар ссылка/действие приходится работать. Конечно, можно настроить короткие алиасы для команд, но можно и пойти чуть дальше - можно настроить, что же должен выполнить zsh в зависимости от синтаксиса введённой строки. Для этого нужно отредактировать .zshrc файл, добавив туда функцию precmd (чуть подробнее про precmd можно прочитать в комментариях к коду в этом совете - http://linsovet.com/content/настройка-приглашений-zsh) примерно следующего содержания:

0
Ваша оценка: Ничего

Использование git для создания патчей

В старые добрые времена для создания патча для модуля нужно было иметь под рукой оригинальный нетронутый файл и файл с вашими изменениями. Затем использовать diff для сравнения двух файлов.

Для такой часто встречающейся практической задачи можно использовать git:

  • Загрузить модуль и распаковать
  • Инициализировать git репозиторий git init
  • Добавить файлы git add .
  • Сделать первый коммит, например git commit -m 'Версия 1.23 с CPAN'
  • Править, коммитить, править...
  • Сгенерировать патч git format-patch --stdout -1

Ссылка:
http://use.perl.org/~brian_d_foy/journal/37664

0
Ваша оценка: Ничего

Git и Subversion могут жить вместе

Предположим, что у вас есть централизованный сервер с svn репозиторием, но вы хотите использовать git локально, делать commit'ы, ветки и другие прелести децентрализованной системы контроля версий. С помощью git-svn это довольно просто.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)