Как перемотать ветку вперед, чтобы возглавить?



я переключаюсь на master после разработки на ветке в течение длительного времени. Журнал показывает:




ваша ветвь отстает от "origin / master" на 167 коммитов и может быть перемотана вперед.




пробовал:



git checkout HEAD


Это не имеет никакого эффекта. Это связано с тем, что у меня есть проверка промежуточной фиксации на master.



Как заставить мастера остаться на голове?

847   8  
git

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

    Ничего не найдено.