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

问题描述 投票:0回答:5

在 Visual Studio Code 的 GIT 选项卡上有一个包含以下项目的上下文菜单:

  • 同步
  • 拉(释放)

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

  • 发布

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

...

发布按钮有什么作用?

git visual-studio-code
5个回答
21
投票

查看Visual Studio Code的源代码后。

current 分支推送到 default 远程 upstream

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 }))            
}

激活时

没有没有上游并且当然设置了远程分支。

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

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

12
投票

来自文档

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

所以我希望如果您配置了上游分支,您将能够Push(即直接推送到配置的上游分支),如果您没有配置上游分支,则只允许Publish(即选择要推送的遥控器和分支)。


10
投票

Publish 将把分支推送到远程并设置本地分支来跟踪远程分支。

Push 只是推送,不设置上游跟踪信息(即:

branch.<name>.remote
branch.<name>.merge
配置)。

当没有上游分支且

push.default = simple
(git 默认)时,Push 将弹出一个对话框以建议发布。


1
投票

推 = git 推...

发布 = git push -u ...


0
投票

发布分支是首次在远程存储库(例如 GitHub、GitLab 或 Bitbucket)上提供分支的行为。 当它发生时:如果分支仅存在于本地(在您的计算机上),则它尚未上传到远程存储库。当您“发布”它时,分支将在远程存储库中创建,您可以与其他人共享。

推送是将本地分支的提交(更改)上传到远程存储库中相应分支的操作。 何时发生:如果远程分支已存在,您可以“推送”更改来更新它。这使远程分支与本地分支保持同步。

© www.soinside.com 2019 - 2024. All rights reserved.