| 1 | = Руководство для разработчика по работе с git = |
| 2 | |
| 3 | Любой разработчик может вносить изменения в репозиторий, поэтому нам необходимы правила, которые: |
| 4 | * помогут ориентироваться в исправлениях в ветках |
| 5 | * позволят узнать, кто является ответственным за исправления. |
| 6 | |
| 7 | == Соглашения == |
| 8 | |
| 9 | Для исключения неоднозначных толкований необходимо определиться с условными обозначениями, которые далее будут применяться в этом руководстве. |
| 10 | |
| 11 | '''${src_dir}''': |
| 12 | Каталог, в котором находятся исходные тексты Midnight Commander. В этом каталоге должен присутствовать подкаталог {{{.git}}}[[BR]] |
| 13 | Расположение этого каталога в файловой системе может быть в любом месте, которое вам понравится. Это может быть {{{/home/<yournick>/src/mc}}}; |
| 14 | {{{/usr/src/mc}}} или любой другой. |
| 15 | |
| 16 | |
| 17 | == Получение репозитория == |
| 18 | |
| 19 | Прежде всего, необходимо получить копию репозитория: |
| 20 | {{{ |
| 21 | $ git clone ssh://midnight-commander.org:2222/git/mc.git |
| 22 | }}} |
| 23 | |
| 24 | == Персональная настройка git == |
| 25 | |
| 26 | Перед началом работы необходимо указать вашему git некоторые данные о себе: |
| 27 | {{{ |
| 28 | cd ${src_dir} |
| 29 | git config 'user.name' 'ваше имя' |
| 30 | git config 'user.email' 'ваш e-mail' |
| 31 | }}} |
| 32 | |
| 33 | Обязательно укажите эти данные. Не стесняйтесь указать реальный e-mail адрес - он необходим для связи с вами при решении вопросов, связанных с ревизиями. |
| 34 | |
| 35 | После выполнения этих команд ваша персональная информация будет занесена в файл {{{${src_dir}/.git/config}}}. Это означает, что ваши персональные данные будут использоваться при работе только с этим репозиторием. Чтобы ваше имя и ваш e-mail использовались при работе с любым репозиторием, выполните команды: |
| 36 | {{{ |
| 37 | git config --global 'user.name' 'ваше имя' |
| 38 | git config --global 'user.email' 'ваш e-mail' |
| 39 | }}} |
| 40 | |
| 41 | == Работа с git == |
| 42 | Сейчас вы готовы продолжить работу с репозиторием. Далее будут описаны типичные сценарии работы с репозиторием. |
| 43 | |
| 44 | === Выполнение операции "просмотр тикета с веткой" === |
| 45 | |
| 46 | На [http://www.midnight-commander.org/report/9 странице] списка тикетов, которые необходимо пересмотреть, выбирайте любой тикет. Статус тикета 'accepted' (принят) обозначает, что у тикета существует ветка, название которой начинается с номера тикета. например, вы выбрали тикет 'XXX. Some my thinks'; статус тикета 'accepted'. Представим, что XXX - это какой-то номер. |
| 47 | |
| 48 | Выполните команду: |
| 49 | {{{ |
| 50 | git remote prune origin |
| 51 | }}} |
| 52 | чтобы обновить список веток которые возможно уже приняты в основной ствол и удалены на сервере. |
| 53 | Далее выполните: |
| 54 | {{{ |
| 55 | git branch -r |
| 56 | }}} |
| 57 | |
| 58 | Вы увидите список веток, которые присутствуют в родительском git. Одна из веток будет называться, например: 'origin/XXX_some_my_thinks': |
| 59 | |
| 60 | {{{ |
| 61 | origin/10_fish_stalls_on_symlink |
| 62 | origin/125-allocate-and-free-memory-via-wrapper |
| 63 | origin/135_drop_bundled_libintl |
| 64 | origin/140_move_docs_and_contrib |
| 65 | origin/145_update_m4_files |
| 66 | origin/147_escaping |
| 67 | origin/148_fancy_tab_handling |
| 68 | origin/155_remove_WANT_WIDGETS |
| 69 | origin/155_want_widgets_METUX |
| 70 | origin/158_message_codes |
| 71 | origin/161_drop_bundled_slang |
| 72 | origin/162_syntax_namerle |
| 73 | origin/166_syntax_minor_fixes |
| 74 | origin/167_locale_german |
| 75 | origin/XXX_some_my_thinks |
| 76 | origin/174_4.6_mandriva_pty_closeonexec |
| 77 | origin/199_slang_1x |
| 78 | origin/200_drop_ncurses |
| 79 | origin/204_mkdir_autofills_name |
| 80 | origin/50_history_section_names |
| 81 | origin/HACK_autoconf |
| 82 | origin/HACK_install_dirs |
| 83 | origin/HACK_memory_management |
| 84 | origin/HACK_mvfs |
| 85 | origin/HEAD |
| 86 | origin/master |
| 87 | origin/mc-4.6 |
| 88 | origin/mc-ru-fork |
| 89 | origin/utf-8 |
| 90 | }}} |
| 91 | |
| 92 | Теперь убедитесь, что у вас нет локальной ветки с таким же названием. Выполните команду: |
| 93 | {{{ |
| 94 | git branch |
| 95 | }}} |
| 96 | |
| 97 | Эта команда покажет список ваших локальных веток. Например: |
| 98 | {{{ |
| 99 | * master |
| 100 | }}} |
| 101 | Звездочка перед названием обозначает, что ветка является текущей. Если в этом списке нет 'XXX_some_my_thinks', то вам нужно выполнить следующую команду: |
| 102 | {{{ |
| 103 | git checkout --trac -b XXX_some_my_thinks origin/XXX_some_my_thinks |
| 104 | }}} |
| 105 | После успешного завершения команды вы увидите следующее: |
| 106 | {{{ |
| 107 | Branch XXX_some_my_thinks set up to track remote branch refs/remotes/origin/XXX_some_my_thinks. |
| 108 | Switched to a new branch "XXX_some_my_thinks" |
| 109 | }}} |
| 110 | |
| 111 | ''ВНИМАНИЕ'' При выполнении этой команды git может выдать помощь по использованию команды git-checkout. Это означает, что вам не помешало бы обновить ваш git до более новой версии. |
| 112 | |
| 113 | Вы теперь создали новую локальную ветку на основе ветки из родительского репозитория. |
| 114 | |
| 115 | ''ПРИМЕЧАНИЕ'' Если локальная ветка ранее уже была создана, то просто переключитесь на неё командой: |
| 116 | {{{ |
| 117 | git checkout XXX_some_my_thinks |
| 118 | }}} |
| 119 | |
| 120 | Можно также проверить, является ли ветка 'XXX_some_my_thinks' текущей. Выполните команду: |
| 121 | {{{ |
| 122 | git-branch |
| 123 | }}} |
| 124 | Вы теперь увидите следующее: |
| 125 | {{{ |
| 126 | master |
| 127 | * XXX_some_my_thinks |
| 128 | }}} |
| 129 | Звездочка перед названием ветки, как уже было сказано, обозначает текущую ветку. |
| 130 | |
| 131 | Теперь вы можете протестировать изменения или исправления, внесенные в эту ветку (и описанные в связанном тикете). |