在Visual Studio Code的GIT选项卡上,有一个上下文菜单,其中包含以下项目:
==================
==================
...
发布按钮有什么作用?
答案 0 :(得分:11)
检查Visual Studio Code的源代码后。
将当前分支推送到默认远程上游
public run(context?: any):Promise {
return this.gitService.push() // ... removed for brevity
}
UPSTREAM 和最近的推/拉(前方)
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 }))
}
NO UPSTREAM 并且设置了远程分支。
if (model.getRemotes().length === 0) {
return false;
}
if (!HEAD || !HEAD.name || HEAD.upstream) {
return false;
}
答案 1 :(得分:5)
来自docs:
如果没有配置上游分支并且Git存储库设置了远程设置,则启用“发布”操作。这将允许您将当前分支发布到远程。
所以我希望如果你配置了一个上游分支,你就可以推送(即直接推送到配置的上游分支),如果你没有配置上游分支,你就是只允许发布(即选择远程和分支推送)。
答案 2 :(得分:1)
发布会将分支推送到远程并设置本地分支来跟踪远程分支。
Push 只是推送,不设置上游跟踪信息(即:branch.<name>.remote
和 branch.<name>.merge
配置)。
当没有上游分支并且 push.default = simple
(git 默认)时,Push 将引发一个对话框以建议发布。