VS Code: в чем разница между push и publish

на вкладке GIT в коде Visual Studio есть контекстное меню с пунктами там:

  • синхронизация
  • тянуть
  • тянуть (выпуск)
  • пуш

==================

  • публикации

==================

...

Что делает кнопка публикации?

2 ответов


после проверки исходного кода кода Visual Studio.

пуш

нажимаем настоящее филиала к по умолчанию пульт ДУ вверх

public run(context?: any):Promise {
    return this.gitService.push() // ... removed for brevity        
}

активный, когда:

здесь вверх и последние нажим/тяги (вперед)

if (!HEAD || !HEAD.name || !HEAD.upstream) {
    return false;
}

if (!HEAD.ahead) { // no commits to pull or push
    return false;
}

публикации

позволяет выбрать, какой пульт вы хотите нажать.

public run(context?: any):Promise {
        const model = this.gitService.getModel();
        const remotes = model.getRemotes();
        const branchName = model.getHEAD().name;
        let promise: TPromise<string>;

        if (remotes.length === 1) {
            const remoteName = remotes[0].name;
            promise = TPromise.as(result ? remoteName : null);
        } else {
            // open the option picker            
            promise = this.quickOpenService.pick(picks, { placeHolder })
                .then(pick => pick && pick.label);
        }

        return promise
            .then(remote => remote && this.gitService.push(remote, branchName, { setUpstream: true }))            
}

активный когда

здесь НЕТ ВВЕРХ ПО ТЕЧЕНИЮ и вне курса установлены удаленные ветви.

if (model.getRemotes().length === 0) {
    return false;
}

if (!HEAD || !HEAD.name || HEAD.upstream) {
    return false;
}

с docs:

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

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