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 установлены пульты дистанционного управления, действие публикации включено. Это позволит вам опубликовать текущую ветку на удаленном компьютере.
поэтому я ожидаю, что если у вас настроена восходящая ветвь, вы сможете пуш (т. е. нажмите непосредственно на настроенную восходящую ветвь), и если у вас нет настроенной восходящей ветви, вам разрешено только публикации (т. е. выберите пульт и ветку для нажатия).