почему одна и та же ветка в git должна сливаться? [Дубликат]

Используя ES2017, вы должны иметь это как объявление функции

async function foo() {
    var response = await $.ajax({url: '...'})
    return response;
}

и выполнить его следующим образом.

(async function() {
    try {
        var result = await foo()
        console.log(result)
    } catch (e) {}
})()

Или синтаксис Promise

foo().then(response => {
    console.log(response)

}).catch(error => {
    console.log(error)

})
16
задан Jonathan Voss 16 July 2015 в 19:35
поделиться

4 ответа

Этот сценарий не является чем-то необычным.

Ключевым моментом здесь является то, что объединенные ветки различны: ветвь удаленного репозитория develop объединяется в локальную (рабочую) develop среду разработчика.

В локальном репозитории разработчика есть две различные ветви:

  • develop = ветка, в которой он / она сейчас работает. Новые коммиты идут здесь.
  • origin/develop = Это, по сути, снимок, который текущий репозиторий содержит в себе состояние ветки develop на удаленном сервере. Когда вы делаете fetch или pull и обновляете локальные изменения после успешного push, он обновляется с помощью удаленных изменений.

Теперь, когда вы делаете git pull происходят две вещи. Это связано с тем, что git pull по существу является псевдонимом для других двух операций git: fetch и merge:

  • fetch - выводит все новые коммиты (если есть) из удаленного репозитория к локальной ветви origin/develop.
  • merge - принимает новые коммиты и применяет их к локальной работе develop branch. Это может произойти одним из двух способов: если локальная рабочая ветвь не содержит расходящейся истории (новые коммиты, о которых не знает пульт), тогда она просто продвигает указатель ветки develop вперед, делает это, указывая на последнюю зафиксировать в origin/develop. Это известно как ускоренное слияние . если у разработчика есть свои новые собственные коммиты, которые не присутствуют в удаленном репо и, следовательно, не в ветви origin/develop, тогда выполняется регулярное слияние, что означает, что существует новая фиксация, содержащая изменения с обеих ветвей , По умолчанию git присваивает такие сообщения таким коммитам: Merge branch 'develop' of https://bitbucket.org/abc/xyz into develop.

Итак, сценарий довольно распространенный.

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

Вы можете сделать это двумя способами (при получении изменений с удаленного сервера) :

  • git fetch; git rebase
  • git pull --rebase
35
ответ дан GolfWolf 24 August 2018 в 08:12
поделиться

Если вы хотите избежать этого типа слияния перед вытаскиванием, например:

git stash
git pull
git stash pop
0
ответ дан Dave DeCarlo 24 August 2018 в 08:12
поделиться

Я получил сообщение того же типа. Merge branch 'feature/customfeature' of https://mylocalrepo.com/project.git into develop, и он ничего не сломал, но не паникуйте. Это только объединение ветки удаленного развития в вашу локальную ветвь развития. До тех пор, пока не возникнут конфликты, вы должны быть хорошими, чтобы пойти :)

0
ответ дан Demian Berisford-Maynard 24 August 2018 в 08:12
поделиться

У владельца были некоторые коммиты на то, что они не толкали, затем бежали git pull и извлекали / сливались в новые коммиты от разработки, которые были в удаленном репо.

4
ответ дан mipadi 24 August 2018 в 08:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: