Я относительно новичок в Git, и у меня есть вопрос по поводу этого потока.Ниже я переключаюсь на ветку develop
и синхронизирую ее с удаленной веткой develop
.Затем я создаю my-feature
ветку, изменяю ее каким-то образом, ставлю, фиксирую и отправляю на удаленное устройство:
git checkout develop
// переключаем на локальную develop
ветку git pull origin develop
(или git fetch origin
/ git merge origin/develop
) // локальная синхронизация develop
с удаленной develop
веткой git checkout -b my-feature
// создание новой ветки и переключение на нее, теперь я знаю, что она содержит последниекод с пульта - Добавление и изменение некоторых файлов при
my-feature
ветке git add .
// размещение всех файлов, которые я изменил git commit -m "message"
// фиксация всех этаповфайлы git status
говорит " нечего зафиксировать, рабочее дерево очищено " git push -u origin my-feature
// отправка на удаленное устройство с возможностью отслеживания git status
говорит " Ваша ветка обновлена с 'origin / my-feature "
На данный момент я не закончил с my-feature
.У меня еще есть работа, но я сделаю ее через пару дней.
Итак, пару дней спустя я хочу продолжить работу с веткой my-feature
, но сначала я хочу убедиться, что мой локальный develop
и локальные my-feature
ветки обновлены, поэтому я знаю, что любые объединенные запросы извлечения других разработчиков теперь присутствуют в моих локальных develop
и локальных my-feature
ветвях, поэтому я уменьшаю вероятность возможных конфликтов.
Итак, я делаю следующее, чтобы убедиться, что они обновлены
git checkout develop
// переключиться на локальную develop
ветку git pull origin develop
(или git fetch origin
/ git merge origin/develop
) // перенести последний объединенный код с удаленного develop
в локальное develop
отделение git checkout my-feature
// переключиться на my-feature
отделение для продолжения работы над ним.Это показывает, что «ваша ветка обновлена с помощью origin / my-feature»
Насколько я понимаю, теперь я должен объединить мою обновленную локальную ветку develop
с моей локальной веткой my-feature
выдача git merge develop
.Это объединит develop
с веткой, в которой я сейчас нахожусь и которая является my-feature
веткой.Таким образом, любые объединенные запросы извлечения от других разработчиков в удаленной ветви develop
теперь должны быть интегрированы в ветку my-feature
, и я могу продолжить работу над ней, зная, что у меня есть последние удаленные изменения.Ежедневное выполнение этих действий уменьшает вероятность возникновения конфликтов.
Однако, прежде чем сделать это, я выдаю git status
, чтобы увидеть состояние моей текущей ветви, которая является my-feature
branch.
Что меня смущаетЯ вижу, что некоторые файлы, которые я добавил или изменил на шаге 4 выше, теперь git status
сообщают как «удаленные»> «для подтверждения», некоторые как «измененные»> «не подготовленные», а некоторые как «неотслеживаемые» файлы,Еще более запутанным является то, что когда я переключился на ветку my-feature
выше на шаге 3, она показывает «Ваша ветка обновлена с помощью« origin / my-feature »», но файлы, которые отображаются, либо не подготовлены, либо не зафиксированыили не отслеживается.
Это так и должно быть?
Должен ли я теперь просто сделать git add
и git commit
еще раз, и если да, то зачем мне делать это снова, если яуже сделал это в шагах 6 и 7 выше?
Пожалуйста, предоставьте некоторые объяснения, я новичок в git и нахожу это по-прежнему запутанным.Я знаком только с командами, которые я описал выше.