Проект кода отправляется нам без контроля версий. Мы превратили его первоначальную версию в репозиторий git и создали ветку dev
для внесения некоторых изменений. Сейчас поставили новую версию (опять же без контроля версий, только файлы с изменениями), поэтому вопрос:
Как нам правильно интегрировать эту новую версию в ветку main
нашего репозитория, а затем перенести изменения в сделанные нами ветки?
Я протестировал просто перезапись всех файлов в репозитории (ветвь main
), но затем git status сообщает, что все файлы и все строки изменены, поэтому я не решаюсь добавлять/фиксировать.
Я хотел бы видеть изменения между поставленными версиями, отраженные в репозитории, как если бы мы отредактировали существующие файлы, а затем добавили/зафиксировали изменения.
Как нам правильно интегрировать эту новую версию в основную ветку нашего репозитория, а затем перенести изменения в сделанные нами ветки?
Как вы уже сделали, вы можете извлечь свою ветку main
, перезаписать интересующие файлы новыми версиями, подготовить изменения и, наконец, зафиксировать.
# while on the main branch with all the changes uncommitted
# staging the changed files
git add <file1>, ..., <fileN>
# committing the changes from the new version
git commit -m "new version blah bla blah"
На этом этапе, если вы хотите увидеть новые изменения, отраженные в вашей ветке dev
, вы можете:
dev
поверх main
.# selecting the dev branch
git checkout dev
# rebasing the dev branch on top of main's head commit
git rebase main
main
в dev
# selecting the dev branch
git checkout dev
# creating a new commit in dev with the changes from main's head commit
git cherry-pick main
Это всего лишь предложение, но существенным улучшением вашего рабочего процесса может стать размещение созданного вами репозитория на такой платформе, как GitHub, BitBuket или аналогичной. Таким образом, люди из другой команды могут вносить свои изменения в один и тот же проект/репозиторий, что упрощает сотрудничество между вашей и их командой.
После настройки репозитория на хостинге каждый член обеих команд может загрузить копию репозитория и работать над проектом локально. Как только кто-то внес какие-то значимые изменения, он может отправить свои коммиты в удаленный репозиторий (возможно, в определенную или личную ветку), поделившись своей работой с другими участниками.
Если некоторые из вас не знакомы с инструментами контроля версий, вот несколько ссылок, которые могут помочь создать основу вашего рабочего процесса. Имейте в виду, что это очень простые руководства. Они просто предназначены для начала:
https://www.geeksforgeeks.org/what-is-collaboration-in-git/?ref=ml_lbp
https://vickysteeves.gitlab.io/collaborating-with-git/collaborating-with-git.html
Спасибо, это подтверждает, что мои первые шаги были правильными. Что меня оттолкнуло, так это то, что после перезаписи файлов git status сообщал, что все файлы изменены, даже те, которые не были изменены.
Именно поэтому вам нужно добавлять и коммитить изменённые файлы, как если бы вы их сами редактировали.