Сделайте fork этого репозитория и работайте в нём в отдельной (!) ветке, необходимо держать master всегда актуальным.
Что бы сделать форк, необходимо будучи залогиненым нажать кнопочку в верхнем правом углу экрана на главной странице репозитория. Таким образом у вас получится своя удалённая копия проекта.
Следующим шагом необходимо забрать удалённый репозиторий (ваш форк) себе локально на машину, что бы с ним работать. Находясь в командной строке в каталоге куда бы вы хотеле забрать проект наберите:
git clone http://github.com/<yourname>/javacourses2016
Далее добавьте в свой локальный репозиторий ссылку на мастер этого репозитория, это понадобится что бы держать свой мастер всегда в актуальном состоянии.
git remote add -t master epam http://github.com/bmkodoo/javacourses2016/
Не забваем настроить .gitignore
файл, что бы не каммитить всякий мусор.
Прежде чем браться за выполнение заданий убедитесь, что имеете последнюю версию мастера.
git pull epam master
И если это не так, заберите последнюю версию в свой мастер.
git rebase epam/master master
git push origin master
Далее убедимся, что мы работаем в нашей ветке, а не в мастере.
git checkout <OUR_BRANCH>
Теперь можем выполнять задания в своей любимой IDE.
Следующим шагом нужно убедиться, что на задание, которое вы собрались делать имеются тесты. Если их нет, есть хороший шанс заработать дополнительные балы, законтрибьютить хороший тест. Пример создания тестов для testNG есть для первого и третьего заданий (параметризация тестов, работа с ресурсами). Как контрибьютить тесты см. ниже в соотвествующем разделе. Это необходимо делать отдельно от выполнения заданий.
Рекомендуется создавать ветку на каждое задание, а по его выполнению вливать его в свою рабочую ветку. Рабочий процесс может выглядеть следующим образом:
# Переключаемся на рабочую ветку (там ещё нет ни одного сделанного задания)
git checkout NS
# Будем делать первое задание, создадим под него ветку
git checkout -b Task_1
#... делаем задание...
# За сегодня не успели, доделаем завтра, закомитим текущие изменения
# (Вообще идеология гит - делать коммиты как можно чаще)
git add .
git commit -m "70% of work complite"
git push origin Task_1
# Вернулись, проверили мастер, если что подтянули, доделали
git add .
git commit -m "task1 done"
# Теперь вольём это всё в нашу рабочую ветку
git checkout NS
git rebase Task_1
git push origin NS
# Ветку Task_1 можно удалить
# Оформляем Pull Request
При оформлении PR по заданиям прикрепляйте к нему лейбл Exercise.
PR - это запрос на слияние веток от одного репозитория к другому, владельцы репозитория ведут беседу с автором PR, он проводит нужные фиксы, и владельцы принимают его PR.
Простой способ оформить PR, это перейти на страницу оригинального проекта, просмотреть список веток и нажать на кнопку Pull Request рядом с веткой, соотвествующей вашим инициалам.
Ветка в которую вы делаете PR может отставать от мастера и изменения в мастере будут показываться как ваши, по факту PR я обновлю её и останутся только ваши измения.
Если законтрибьютить хороший тест, то можно заработать дополнительные баллы. Подобная активность всячески приветствуется, а опыт написания тестов жизненно необходим. Пример создания тестов для testNG есть для первого и третьего заданий (параметризация тестов, работа с ресурсами).
Изменения по тестам следует оформлять как отдельные PR на мастер (!), ваши тесты потом подтянут себе остальные участники курса. К PR следует прицепить лейбл Tests.
Подобные дела следует оформлять в виде Issue в главном репозитории. Так же не стесняйтесь задавать возникающие вопросы по флоу\гиту мне в почту.