Почему файлы уже поставлены, зафиксированы и отправлены, и снова отображаются как неотслеживаемые, неизмененные или не зафиксированные? - PullRequest
0 голосов
/ 14 ноября 2018

Я относительно новичок в Git, и у меня есть вопрос по поводу этого потока.Ниже я переключаюсь на ветку develop и синхронизирую ее с удаленной веткой develop.Затем я создаю my-feature ветку, изменяю ее каким-то образом, ставлю, фиксирую и отправляю на удаленное устройство:

  1. git checkout develop // переключаем на локальную develop ветку
  2. git pull origin develop (или git fetch origin / git merge origin/develop) // локальная синхронизация develop с удаленной develop веткой
  3. git checkout -b my-feature // создание новой ветки и переключение на нее, теперь я знаю, что она содержит последниекод с пульта
  4. Добавление и изменение некоторых файлов при my-feature ветке
  5. git add . // размещение всех файлов, которые я изменил
  6. git commit -m "message" // фиксация всех этаповфайлы
  7. git status говорит " нечего зафиксировать, рабочее дерево очищено "
  8. git push -u origin my-feature // отправка на удаленное устройство с возможностью отслеживания
  9. git status говорит " Ваша ветка обновлена ​​с 'origin / my-feature "

На данный момент я не закончил с my-feature.У меня еще есть работа, но я сделаю ее через пару дней.

Итак, пару дней спустя я хочу продолжить работу с веткой my-feature, но сначала я хочу убедиться, что мой локальный develop и локальные my-feature ветки обновлены, поэтому я знаю, что любые объединенные запросы извлечения других разработчиков теперь присутствуют в моих локальных develop и локальных my-feature ветвях, поэтому я уменьшаю вероятность возможных конфликтов.

Итак, я делаю следующее, чтобы убедиться, что они обновлены

  1. git checkout develop // переключиться на локальную develop ветку
  2. git pull origin develop (или git fetch origin / git merge origin/develop) // перенести последний объединенный код с удаленного develop в локальное develop отделение
  3. 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 и нахожу это по-прежнему запутанным.Я знаком только с командами, которые я описал выше.

...