zaLinux.ru

Как сделать и отправить изменения исходного кода на GitHub


GitHub — это потрясающий инструмент для совместной разработки программного обеспечения. По работе с git достаточно много документации: в справке программы и в Интернете.

Будучи очень гибкой и имея множество команд и опций, git при первом знакомстве может вызвать чувство растерянности. Опции и команды git нужно тщательно изучать, но в этой заметке «грязная» и короткая инструкция, которая по шагам показывает, как сделать изменения в программе, размещённой на GitHub и как отправить свои изменения автору.

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

Права на редактирование исходного кода на GitHub

Процедура изменения исходного кода на GitHub различается в зависимости от того, есть ли у вас права на внесение изменений в исходный код репозитория или нет.

Вы можете напрямую редактировать репозиторий на GitHub в следующих случаях:

  • вы являетесь владельцем репозитория
  • вам предоставлены права на редактирование определенного репозитория его владельцем

В этом случае процедура редактирования следующая:

  • вы клонируете исходный код на локальный компьютер
  • вносите изменения в исходный код
  • отправляете (push) изменения в репозиторий

Если у вас нет прав на редактирование репозитория, но вы хотите предложить изменение исходного кода, тогда вам нужно сделать форк (Fork) исходного репозитория.

Далее вы проходите три уже знакомые стадии для вашего форка:

  • вы клонируете исходный код на локальный компьютер
  • вносите изменения в исходный код
  • отправляете (push) изменения в репозиторий

После этого вы предлагаете изменения в исходный репозиторий (чей форк вы сделали), это называется «Pull request».

Как редактировать исходный код на GitHub

Я покажу здесь часть реального рабочего процесса над реальным кодом.

Ситуация: в программе airgeddon в ветку EvilTwin мне нужно внести изменения в некоторые строки. Я начинаю с клонирования кода на локальный диск:

git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git -b EvilTwin

Обратите внимание, что я использую ключ -b, после которого указываю имя ветки EvilTwin. По-умолчанию клонируется самая новая ветка (ветка, в которой были сделаны самые свежие изменения). Поскольку именем по умолчанию является master, то обычно именно эта ветка и клонируется.


Название веток и особенности рабочего процесса у каждого проекта могут быть свои — и они обсуждаются внутри команды или доступны в виде публичных правил.

Исходный код можно редактировать в вашем любимом редакторе или в IDE. После окончания внесения правок, в командной строке переходим в директорию с программой и выполняем там:

git status

Выводиться информация о статусе (изменён файл) и подсказки, что делать дальше:

На ветке EvilTwin
Ваша ветка обновлена в соответствии с «origin/EvilTwin».
Изменения, которые не в индексе для коммита:
  (используйте «git add <файл>…», чтобы добавить файл в индекс)
  (используйте «git checkout -- <файл>…», чтобы отменить изменения
   в рабочем каталоге)

	изменено:      airgeddon.sh

нет изменений добавленных для коммита
(используйте «git add» и/или «git commit -a»)

21

Добавляем файл(ы), в которых были сделаны изменения:

git add airgeddon.sh

И опять смотрим статус:

git status

22


Нам нужно написать комментарий к тому, что мы сделали с кодом:

git commit -m "Updating Russian translation (minor fixes)"

Получаем примерно следующую информацию:

[EvilTwin 39b8960] Updating Russian translation (minor fixes)
 1 file changed, 8 insertions(+), 8 deletions(-)

Если любопытно, можно опять посмотреть статус:

git status
На ветке EvilTwin
Ваша ветка опережает «origin/EvilTwin» на 1 коммит.
  (используйте «git push», чтобы опубликовать ваши локальные коммиты)
nothing to commit, working tree clean

Полученная информация и подсказка свидетельствуют, что всё готово для отправки наших изменений на GitHub. Чтобы это сделать я выполняю команду (EvilTwin в данном случае — это название ветки, в которую я делаю коммит):

git push origin EvilTwin

У вас спросят имя пользователя (e-mail) и пароль на GitHub и будет выведена примерно следующая информация:

Подсчет объектов: 3, готово.
Delta compression using up to 3 threads.
Сжатие объектов: 100% (3/3), готово.
Запись объектов: 100% (3/3), 420 bytes | 0 bytes/s, готово.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/v1s1t0r1sh3r3/airgeddon.git
   04d1fb4..39b8960  EvilTwin -> EvilTwin

ВНИМАНИЕ: с 13 августа 2021 года поддержка аутентификации по паролю была удалена и теперь нужно использовать токен. Подробности смотрите в статье Ошибка «remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead» (РЕШЕНО).

Напоследок можно опять проверить статус:

git status

Я получил:

На ветке EvilTwin
Ваша ветка обновлена в соответствии с «origin/EvilTwin».
nothing to commit, working tree clean

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *