Здравствуйте! Сейчас я нахожусь на исп.сроке в 1й вебстудии, это моя первая в жизни работа программистом, до этого само собой опыта командной разработки не имел. Единственная проблема с которой я сталкиваюсь и никак не могу победить это, собственно, git.
Обычно вот что я делаю:
1.Создаю ветку в bitbucket , наследуюсь от мастер
2.Подкючаюсь к контейнеру по ssh
3.Перехожу на ветку мастер (git checkout master), и делаю pull из удаленного мастера: git pull origin master
4.Делаю fetch новосозданной ветки: git fetch origin NewBranch
5.Перехожу на ветку: git checkout NewBranch
6.(работаю над какими то файлами)
7.Индексирую изменения в этих файлах:
git add path/to/file
8.Делаю коммит: git commit -m "commit"
9. Делаю пуш в ветку: git push origin NewBranch
Этот алгоритм мне буквально расписали пошагово. Однако я постоянно сталкиваюсь со всякими веселыми неожиданостями - то не могу перейти на ветку, то теперь вот добавилась новая проблема- мои пул реквесты цепляют за собой кучу комитов с других веток и за другие дни.____. По итогу выходит, что я сделаю задачу за час, а маюсь с гитом часа 3-4. Сейчас наиболее проблемной выглядит именно ситуация с чужими или же старыми комитами, так как такие пулреквесты само собой отклоняют.
Прошу помочь разобратбся, и объяснить что конкретно я делаю не так и как надо. Только прошу не посылать на сайт git или githowto, разумеется я бывал там многократно.
Либо привлекайте знающих товарищей по работе, чтобы на реальных примерах объяснили. Либо изучите git, там нет ничего сложного (для уровня "создал фичу - завершил фичу").
Трудно угадать в чем у вас проблема без текста ошибки. Что касается "чужих изменений", то делайте pull перед любой работой с удаленной веткой, и если там уже есть изменения, то делайте rebase вашей ветки в новый коммит.
Да, просто git rebase develop, например. После rebase ваша ветка будет начинаться не из коммита из прошлого, а из последнего коммита develop, соответственно в request попадут только ваши изменения.
Антон, в принципе, как и любым другим советом. Но с git в этом плане проще, коммиты не удаляются (во всяком случае на сразу), поэтому всегда можно вернуться к нужной версии.
YakutD, и как правильно заметили, используйте оболочку для работы с git. Т.к. смотреть дерево и тем более решать конфликты в командной строке не удобно. IDE от JetBrains уже имеют встроенную отличную оболочку для git.