2017-02-01 15 views
0

У меня есть git repo, и в настоящее время я работаю в ветке функций.Git - push after feature branch rebase

У меня есть что-то вроде этого:

dev: ---1--2--3-- 
       \ 
fb:    --f1 

В то время как я работал над моей особенностью отрасли, больше фиксаций на Dev случились, так что я перебазировались на него, и теперь ша из моих фиксаций изменили

dev: ---1--2--3--4--5---- 
         \ 
fb:     --f1(another) 

Так что теперь я не могу нажать его на ветку удаленной функции, потому что SHA недействительны. I не может толкнуть с силой, потому что сервер запрещен.

Итак, каков правильный рабочий процесс в таком случае, что мне делать?

ответ

0

Вы можете, например, сделать один из:

  • удалить удаленную ветку, а затем нажмите ваше местное отделение
  • подтолкнуть местное отделение к недавно имени удаленного филиала
  • отменить перебазироваться и сделать сливаться вместо
  • убедить хостер хранилища, чтобы принудительно выталкивает, а затем принудительно Напрягите местное отделение
1

My S uggestion будет либо merge remote/dev into local/fb, либо delete remote/fb, затем нажмите local/fb с историей git.

  • Отменить перебазирования и слияния удаленных/DEV в локальной/FB.

    # undo rebase: reset your local/fb with remote/fb 
    $ git checkout fb 
    $ git reset --hard origin/fb 
    
    # merge and push to remote/fb 
    $ git pull origin dev 
    $ git push origin fb 
    
  • Удалить удаленную/FB ветви, затем толкать местных/FB с историей.

    $ git push origin --delete fb  # delete remote/fb branch 
    $ git push origin fb 
    
0

Это зависит от вашего общего процесса, как задумано вашей компании/команды. Однако возможно, что они еще не полностью поняли это.

Предотвращение принудительного нажатия на все ветви, а также необходимость перестановки ветвей функций противоречат друг другу. Обе вещи могут быть разумными частями рабочего процесса, но не тем же рабочим процессом.

Два варианта

Если принудительные толчки, чтобы показать ветви должны быть отказано в вашей компании, следствием является то, что вы не можете перебазировать эти художественные ветви. Вместо этого вам нужно будет предварительно сформовать не быстрые слияния.

Если ваша компания ожидает, что вы восстановите свои филиалы, то они должны заставить репо принять принудительные нажатия к этим ветвям функций. Если git deny принудительно нажимает только на определенные ветви, а не на все ветви, тривиально легко.

Слоппи обходные

Вы, конечно, можете удалять свои художественные ветви каждый раз, когда вы перебазироваться, и создать новую ветку каждый раз. Это очень неряшливо и приведет к смешному количеству ненужных ветвей. Ваша компания/команда должна подумать о своей стратегии работы, чтобы избежать такого рода вещей.