在VSCode中,git sync是什么意思?

52

当你在 Visual Studio Code 中执行 同步更改 操作时,实际上会运行哪些命令?

git sync in vscode

2个回答

49

根据VSCode在线帮助文档

假设你的仓库已连接到某个远程仓库,并且你所检出的分支与该远程仓库中的某个分支存在上游链接,那么VS Code将为你提供有用的操作来推送、拉取和同步该分支(后者将运行pull命令,然后是push命令)。

看起来,如果你在给定的分支上运行同步更改操作,它将执行以下操作:

git pull origin someBranch
git push origin someBranch

根据@FelikZ的评论,将pull --rebase设置为默认行为以用于git pull的一种方法是通过在您的.gitconfig文件中添加以下内容进行配置:

[pull]
    rebase = true

那么,当 VSCode 插件执行 git pull 时,默认情况下应该使用 rebase 策略。如果您按照上面的链接并滚动到 "Git patch/diff mode" 部分,您将看到一个屏幕截图,其中显示了配置 Git 来通过 rebase 进行拉取。

更新:从 v1.28 开始,现在有一个 git.rebaseWhenSync 设置。来自发行说明

git.rebaseWhenSync 设置将允许您配置 Sync 命令在运行时始终使用 rebase 而不是 merge。


我本以为还有更多的内容,比如在推送之前隐藏未决的更改 :) - Jay Wick
有没有办法改变它的行为,让它执行 pull --rebase 而不仅仅是 pull? - FelikZ
2
@FelikZ 我更新了我的回答。我认为你可以更新你的.gitconfig文件,使其在拉取时默认使用rebase。 - Tim Biegeleisen
1
@TimBiegeleisen 感谢您的回复。我进行了一些搜索,并发现它实际上很快就会在VSCode中发布(2017年11月),请参见此链接 - FelikZ
1
更新答案以包括新的 git.rebaseWhenSync 设置! - Jay Wick
如果您想在所有分支上执行此操作,可以使用hub并运行hub sync(或在您的.bash_profile.zshrc中运行alias git="hub"以运行git sync)。 - Leo

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接