= Руководство для разработчика по работе с git = Любой разработчик может вносить изменения в репозиторий, поэтому нам необходимы правила, которые: * помогут ориентироваться в исправлениях в ветках * позволят узнать, кто является ответственным за исправления. == Соглашения == Для исключения неоднозначных толкований необходимо определиться с условными обозначениями, которые далее будут применяться в этом руководстве. '''${src_dir}''': Каталог, в котором находятся исходные тексты Midnight Commander. В этом каталоге должен присутствовать подкаталог {{{.git}}}[[BR]] Расположение этого каталога в файловой системе может быть в любом месте, которое вам понравится. Это может быть {{{/home//src/mc}}}; {{{/usr/src/mc}}} или любой другой. == Получение репозитория == Прежде всего, необходимо получить копию репозитория: {{{ $ git clone ssh://midnight-commander.org:2222/git/mc.git }}} == Персональная настройка git == Перед началом работы необходимо указать вашему git некоторые данные о себе: {{{ cd ${src_dir} git config 'user.name' 'ваше имя' git config 'user.email' 'ваш e-mail' }}} Обязательно укажите эти данные. Не стесняйтесь указать реальный e-mail адрес - он необходим для связи с вами при решении вопросов, связанных с ревизиями. После выполнения этих команд ваша персональная информация будет занесена в файл {{{${src_dir}/.git/config}}}. Это означает, что ваши персональные данные будут использоваться при работе только с этим репозиторием. Чтобы ваше имя и ваш e-mail использовались при работе с любым репозиторием, выполните команды: {{{ git config --global 'user.name' 'ваше имя' git config --global 'user.email' 'ваш e-mail' }}} В этом случа изменения сохранятся в файле {{{~/.gitconfig}}} == Работа с git == Сейчас вы готовы продолжить работу с репозиторием. Далее будут описаны типичные сценарии работы с репозиторием. === Выполнение операции "просмотр тикета с веткой" === На [http://www.midnight-commander.org/report/9 странице] списка тикетов, которые необходимо пересмотреть, выбирайте любой тикет. Статус тикета 'accepted' (принят) обозначает, что у тикета существует ветка, название которой начинается с номера тикета. например, вы выбрали тикет 'XXX. Some my thoughts'; статус тикета 'accepted'. Представим, что XXX - это какой-то номер. Выполните команду: {{{ git remote prune origin }}} чтобы обновить список веток которые возможно уже приняты в основной ствол и удалены на сервере. Далее выполните: {{{ git branch -r }}} Вы увидите список веток, которые присутствуют в родительском git. Одна из веток будет называться, например: 'origin/XXX_some_my_thoughts': {{{ origin/10_fish_stalls_on_symlink origin/125-allocate-and-free-memory-via-wrapper origin/135_drop_bundled_libintl origin/140_move_docs_and_contrib origin/145_update_m4_files origin/147_escaping origin/148_fancy_tab_handling origin/155_remove_WANT_WIDGETS origin/155_want_widgets_METUX origin/158_message_codes origin/161_drop_bundled_slang origin/162_syntax_namerle origin/166_syntax_minor_fixes origin/167_locale_german origin/XXX_some_my_thinks origin/174_4.6_mandriva_pty_closeonexec origin/199_slang_1x origin/200_drop_ncurses origin/204_mkdir_autofills_name origin/50_history_section_names origin/HACK_autoconf origin/HACK_install_dirs origin/HACK_memory_management origin/HACK_mvfs origin/HEAD origin/master origin/mc-4.6 origin/mc-ru-fork origin/utf-8 }}} Теперь убедитесь, что у вас нет локальной ветки с таким же названием. Выполните команду: {{{ git branch }}} Эта команда покажет список ваших локальных веток. Например: {{{ * master }}} Звездочка перед названием обозначает, что ветка является текущей. Если в этом списке нет 'XXX_some_my_thinks', то вам нужно выполнить следующую команду: {{{ git checkout -b XXX_some_my_thoughts origin/XXX_some_my_thoughts }}} После успешного завершения команды вы увидите следующее: {{{ Branch XXX_some_my_thoughts set up to track remote branch refs/remotes/origin/XXX_some_my_thoughts. Switched to a new branch "XXX_some_my_thoughts" }}} ''ВНИМАНИЕ'' При выполнении этой команды git может выдать помощь по использованию команды git-checkout. Это означает, что вам не помешало бы обновить ваш git до более новой версии. Вы теперь создали новую локальную ветку на основе ветки из родительского репозитория. ''ПРИМЕЧАНИЕ'' Если локальная ветка ранее уже была создана, то просто переключитесь на неё командой: {{{ git checkout XXX_some_my_thoughts }}} Можно также проверить, является ли ветка 'XXX_some_my_thoughts' текущей. Выполните команду: {{{ git-branch }}} Вы теперь увидите следующее: {{{ master * XXX_some_my_thoughts }}} Звездочка перед названием ветки, как уже было сказано, обозначает текущую ветку. Теперь вы можете протестировать изменения или исправления, внесенные в эту ветку (и описанные в связанном тикете).