VS Code:推送和发布有什么区别

Lie*_*ero 11 git visual-studio-code

在Visual Studio代码的GIT选项卡上有一个上下文菜单,其中包含以下项目:

  • 同步
  • 拉(释放)

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

  • 发布

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

...

发布按钮有什么作用?

amd*_*amd 14

检查Visual Studio Code的源代码后.

当前分支推送到默认的远程上游

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

活跃时:

UPSTREAM和最近的推/拉(前面)

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

if (!HEAD.ahead) { // no commits to pull or push
    return false;
}
Run Code Online (Sandbox Code Playgroud)

发布

允许您选择要推送的遥控器.

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 }))            
}
Run Code Online (Sandbox Code Playgroud)

活跃的时候

没有上游和关闭过程远程分支被设置.

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

if (!HEAD || !HEAD.name || HEAD.upstream) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)


tek*_*ara 9

发布会将分支推送到远程并设置本地分支来跟踪远程分支。

推送只是推送,不设置上游跟踪信息(即:branch.<name>.remotebranch.<name>.merge配置)。

当没有上游分支并且push.default = simple(git 默认)时,Push会弹出一个对话框来建议发布。


eck*_*kes 6

来自文档:

如果没有配置上游分支并且Git存储库已设置远程数据库,则启用"发布"操作.这将允许您将当前分支发布到远程.

所以我希望如果您配置了上游分支,您就可以推送(即直接推送到配置的上游分支),如果没有配置上游分支,则只允许发布(即选择远程和分支推进).