Перезаписать файлы в git-репо

Проект кода отправляется нам без контроля версий. Мы превратили его первоначальную версию в репозиторий git и создали ветку dev для внесения некоторых изменений. Сейчас поставили новую версию (опять же без контроля версий, только файлы с изменениями), поэтому вопрос:

Как нам правильно интегрировать эту новую версию в ветку main нашего репозитория, а затем перенести изменения в сделанные нами ветки?

Я протестировал просто перезапись всех файлов в репозитории (ветвь main), но затем git status сообщает, что все файлы и все строки изменены, поэтому я не решаюсь добавлять/фиксировать.

Я хотел бы видеть изменения между поставленными версиями, отраженные в репозитории, как если бы мы отредактировали существующие файлы, а затем добавили/зафиксировали изменения.

Именно поэтому вам нужно добавлять и коммитить изменённые файлы, как если бы вы их сами редактировали.

mkrieger1 31.05.2024 14:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как нам правильно интегрировать эту новую версию в основную ветку нашего репозитория, а затем перенести изменения в сделанные нами ветки?

Как вы уже сделали, вы можете извлечь свою ветку 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, вы можете:

  1. Перебазируйтеdev поверх main.
# selecting the dev branch
git checkout dev

# rebasing the dev branch on top of main's head commit
git rebase main
  1. Выберите новый коммит из 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 или аналогичной. Таким образом, люди из другой команды могут вносить свои изменения в один и тот же проект/репозиторий, что упрощает сотрудничество между вашей и их командой.

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

Если некоторые из вас не знакомы с инструментами контроля версий, вот несколько ссылок, которые могут помочь создать основу вашего рабочего процесса. Имейте в виду, что это очень простые руководства. Они просто предназначены для начала:

Спасибо, это подтверждает, что мои первые шаги были правильными. Что меня оттолкнуло, так это то, что после перезаписи файлов git status сообщал, что все файлы изменены, даже те, которые не были изменены.

Martin Der 04.06.2024 09:56

Другие вопросы по теме