2016-07-29 2 views
1

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

ответ

3

У вас есть два основных варианта здесь, вы можете объединить удаленный филиал в вашей отрасли затем нажать, или вы можете перебазировать свой филиал на пульте дистанционного управления, а затем быстро -для удаленной ветви.

Вариант 1: слияние

git pull origin yourBranch   # does a fetch, followed by a merge 
git push origin yourBranch   # push merged branch to remote 

Вариант 2: перебазироваться

git pull --rebase origin yourBranch # does a fetch, followed by a rebase 
git push origin yourBranch   # ideally this will fast-forward the remote, 
            # meaning all your commits will be played on top 

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

В любом случае вы не потеряете выполненную вами работу, хотя некоторые (или все) сделанные вами коммиты могут не сохраниться в удаленной ветке, если вы перейдете с опцией слияния.

-1

Попробуйте сделать это шаги:

Step1: git add . 
Step2: git commit -m "message commit" 
Step3: git pull 
if you have some conflict, please merge code and return step 1. 
Step 4: git push. 
4

git pull --rebase часто является наиболее полезной задачей здесь. Эффективно это будет:

  1. Отката вашего хранилище, чтобы перед вашим unpushed изменений
  2. притяжения вверх (это не потребует слияний, только быстро-вперед)
  3. Попытки повторно применить изменения которые были отброшены на этапе 1.

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

1

Вам нужно будет сделать git pull в любом случае. Затем разрешите слияние (если оно будет), затем сделайте новый коммит и только затем нажмите на репозиторий.

+0

Добро пожаловать в переполнение стека! Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только вы [зарабатываете] (http://meta.stackoverflow.com/q/146472/169503) достаточно [ репутация] (http://stackoverflow.com/help/whats-reputation), вы сможете [комментировать] (http://stackoverflow.com/help/privileges/comment) в любом сообщении. Если у вас есть связанный, но другой вопрос, задайте новый вопрос (http://stackoverflow.com/questions/ask), ссылаясь на этот вопрос, если он поможет обеспечить контекст. – ddb

Смежные вопросы