Как перемотать ветку вперед, чтобы возглавить?
я переключаюсь на master после разработки на ветке в течение длительного времени. Журнал показывает:
ваша ветвь отстает от "origin / master" на 167 коммитов и может быть перемотана вперед.
пробовал:
git checkout HEAD
Это не имеет никакого эффекта. Это связано с тем, что у меня есть проверка промежуточной фиксации на master.
Как заставить мастера остаться на голове?
8 ответов:
делаем:
git checkout master git pull originбудет извлекать и объединять
origin/masterветку (вы можете просто сказатьgit pullкак источник по умолчанию).
попробовать
git merge origin/master. Если вы хотите быть уверены, что он только делает перемотку вперед, вы можете сказатьgit merge --ff-only origin/master.
в вашей ситуации,
git rebaseтакже будет делать трюк. Поскольку у вас нет изменений, которых нет у мастера, git просто перемотает вперед. Если вы работаете с рабочим процессом rebase, это может быть более целесообразно, так как вы не получите фиксацию слияния, если вы испортите.username@workstation:~/work$ git status # On branch master # Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded. # (use "git pull" to update your local branch) # nothing to commit, working directory clean username@workstation:~/work$ git rebase First, rewinding head to replay your work on top of it... Fast-forwarded master to refs/remotes/origin/master. # On branch master nothing to commit, working directory clean
git checkout master git pullдолжен делать свою работу.
вы получите сообщение "Ваша ветка позади" каждый раз, когда вы работаете на ветке, отличной от master, кто-то делает изменения, чтобы мастер и вы ГИТ тянуть.
(branch) $ //hack hack hack, while someone push the changes to origin/master (branch) $ git pullтеперь ссылка origin / master вытащена, но ваш мастер не слили С
(branch) $ git checkout master (master) $теперь мастер находится за origin / master и можно быстро переслать
this will pull and merge (so merge also newer commits to origin/master) (master) $ git pull this will just merge what you have already pulled (master) $ git merge origin/masterтеперь ваш Мастер и происхождение / мастер находятся в синхронизации
Если вы стоите на другой ветке и хотите проверить самую новую версию master, вы также можете сделать
git checkout -B master origin/master
никаких сложностей не требуется просто встаньте на свою ветку и сделайте git pull это сработало для меня
или, как вторая попытка git pull origin master только в том случае, если вам не повезло с первой командой
наведите указатель бранча на голову:
git branch -f masterваш филиал
masterуже существует, поэтому git не позволит вам перезаписать его, если вы не используете...-f(этот аргумент означает--force)или вы можете использовать rebase:
git rebase HEAD masterсделать это на свой страх и риск ;)
до rebase the настоящее местные трекер филиал перемещение локальных изменений поверх последнего удаленного состояния:
$ git fetch && git rebaseв целом вперед и отбросьте локальные изменения (перезагрузка)*:
$ git fetch && git checkout ${the_branch_name} && git reset --hard origin/${the_branch_name}до вперед и сохранить локальные изменения ( rebase):
$ git fetch && git checkout ${the_branch_name} && git rebase origin/${the_branch_name}* - чтобы отменить изменение, вызванное непреднамеренным жестким сбросом, сначала выполните
git reflog, который отображает состояние головы в обратном порядке, найдите хэш, на который указывала голова перед операцией сброса (обычно очевидной), и жестко сбросьте ветку на этот хэш.
Comments