Как сделать то же самое в git ветке? - PullRequest
0 голосов
/ 18 мая 2018

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

  1. git branch abc

  2. git checkout abc

  3. сделал мою работу
  4. git stash
  5. git pull origin Развитие
  6. получил конфликты
  7. Решил конфликты, а также git stash pop
  8. git commit-m'message '// Не знаю, как объединить удаленные строки, которые не являются частью конфликта
  9. git push origin

Теперь эти шагиВ результате было зафиксировано 2 файла: один, в котором я разрешал конфликты, и один, в котором я работал. Скажем, File1 и File2 соответственно.

Теперь мне нужно повторно нажать мой код, но только file2, то есть тот, в котором я не работал.в котором я сделал разрешение конфликтов и все.

Но состояние git ничего не покажет, так как я уже сделал все коммиты и нажатия. Также во время некоторых автоматических слияний необходимый код удаляется из File1. Каквернуть это обратно?

Любая помощьбудет признателен?

Поскольку я все еще изучаю GIT, любое объяснение поможет мне и другим.

Я использую BITBUCKET.

Спасибо !!

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Чтобы расширить предыдущий ответ, я бы добавил: Git stash сохранит ваши изменения в «кармане», если они не готовы к коммиту.Но ваши изменения готовы, поэтому в этом нет необходимости.

О вашем вопросе в предыдущем комментарии (мне не хватает репутации, чтобы отвечать вам в комментариях): git pull обновляет ваш локальный репозиторий и ваш рабочий каталог с изменениями в удаленном репозитории, является ярлыком для gitfetch с последующим git merge.Но, поскольку у git merge есть некоторые недостатки в истории, может быть полезно использовать вместо этого git fetch + git rebase.

Git rebase работает локально, поэтому его можно использовать гомологичным образом для git merge, но не для git pull !.Многие ответы объяснят лучше, чем я, о git rebase, надеюсь, я немного помогу.

0 голосов
/ 18 мая 2018

Для № 1 и № 2: Их можно объединить - git checkout -b abc

Для № 4: Почему вы спрятались?Я считаю, что вы должны были внести свои изменения здесь.

Для № 6: Конфликты где?В вашей недавно созданной ветке?Это не должно быть возможно.

Типичный рабочий процесс будет выглядеть следующим образом:

  1. Убедитесь, что основная ветвь (мастер, или разработчик, или что-то еще) до-Дата.Я буду использовать master для этого примера.
    • git checkout master
    • git fetch
    • git rebase origin/master
  2. Создание и извлечение ветви элементов
    • git checkout -b featureBranch
  3. Внесение изменений
  4. Фиксация изменений в featureBranch (в идеале, это будет сделано несколько раз; не один большой коммит)
    • git add . # Это только один пример;добавить выборочно, в зависимости от ситуации
    • git commit
  5. Нажмите локальную FeatureBranch на пульте дистанционного управления, для просмотра или любого другого
    • git push origin featureBranch
  6. Когда все будет готово (например, проверено и одобрено), объедините FeatureBranch с master
    1. Rebase featureBranch против последних master
      • git checkout featureBranch
      • git fetch
      • git rebase origin/master
    2. Убедитесь, что master обновлен до
      • git checkout master
      • git rebase origin/master
    3. Объединить
      • git merge --no-fast-forward featureBranch

Этот рабочий процесс путем перебазирования featureBranch перед объединением и использованием небыстрыхпрямое слияние приведет к линейной, но очерченной истории master .

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...