52 коммитов позади мастера - PullRequest
1 голос
/ 21 октября 2019

Я внес некоторые изменения в свой локальный репозиторий и перенес их в удаленную ветку, когда я создал запрос извлечения для того же самого, я заметил, что ветка содержит все коммиты, которые я сделал с мастером, возвращаясь к 3 месяцам,Я также получил сообщение, что я «52 коммитов за мастером», что я предполагаю, потому что мой код не объединен с мастером (пожалуйста, дайте мне знать, если я ошибаюсь в этом предположении). Я хотел, чтобы только последний коммит пошел в ветку, которую я создал. Один из вариантов, о котором я подумал, - это отправить конкретный коммит в новую ветвь, а затем создать для него PR для мастера, но кажется, что все коммиты будут проталкиваться до конкретного коммита, если я не изменю порядок с помощью rebase.

Я хотел бы знать, что было бы лучше, синхронизировать коммиты или изменить порядок с помощью rebase, а затем отправить только этот конкретный коммит в локальную ветвь?

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

Я пытался отправить последний коммит в удаленную ветвь, но, похоже, он подталкивает все коммиты до последнего коммита. Один из вариантов - использовать rebase, но я не совсем уверен, как я это делаю и нужно ли его использовать.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Вы можете просто использовать простой комментарий для обновления своего репо,

git pull --rebase --autostash

Иногда вы получаете конфликты слияния, не беспокойтесь, что можетеразрешите это вручную и используйте git rebase --continue

" 52 коммитов за мастером " это потому что ваш локальный репозиторий не обновлен.

0 голосов
/ 21 октября 2019

Это зависит от ваших потребностей. Если вы хотите передать только ваш коммит мастеру, самый безопасный способ - использовать cherry-pick из вашей ветки к мастеру. Это совершенно безопасно, потому что вам не нужно принудительно нажимать.

  1. Найти хеш коммита: git log.
  2. Оформить заказ мастеру: git checkout master.
  3. Выполните выравнивание с мастером git pull или git pull upstream master, если вы используете восходящую ветвь.
  4. Убедитесь, что вы выровнены с мастером: git status.
  5. Выбор вишни без фиксации:git cherry-pick -n <commit-hash>
  6. Фиксация: git commit -m <commit message>
  7. Проверьте журнал перед нажатием: git log. Вы также можете проверить разницу: git diff origin/master.
  8. Push to master: git push.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...