Visual Studio Code中的Git变基

Chs*_*r17 6 git visual-studio-code

这是我的情况:我有一个生产分支,一个开发分支和多个功能分支。在开发功能时,我必须在dev分支上进行修补。现在,我将为当前正在处理的功能分支重新设置基础,以避免将来合并冲突。当我以前使用JetBrain的IDE时,我会做一个git rebase并能解决问题。我在VSCode中喜欢的唯一命令是Git:Sync(rebase),但这不会做任何事情,也不会重新设置基础。我得到的只是以下消息:

This action will push and pull commint to and from 'origin/Current_feature'
Run Code Online (Sandbox Code Playgroud)

有人对此有经验吗?

小智 15

我刚试过,有效!! 在此处输入图片说明

PS:我尝试找到使用--rebase参数设置默认“同步”操作的方法。我从 statusbar找到了已添加配置选项以同步 + 变基的 PR ,但它尚未登陆。

终于找到解决办法了, git config --global pull.rebase true成功了!!

  • 自 2018 年 9 月发布 https://code.visualstudio.com/updates/v1_28#_always-rebase-when-running-sync 以来,您现在可以同步 + Rebase (5认同)
  • `git pull --rebase` 的这个包装器提供了一种在拉取时变基的方法(即,获取然后在远程分支上变基),但不是一种在任意提交上变基“HEAD”的方法。 (2认同)
  • 这只会在同一分支中新拉入的提交之上重新调整本地提交的基础。它不允许在另一个分支上重新建立基础(例如“git rebase origin/master”),我认为这就是OP所要求的。我仍然不确定 vscode 是否有非终端方式在另一个分支上重新建立基础。 (2认同)

Mar*_*mon 9

您可以直接从终端运行命令: git rebase branchgit rebase -i branch

您必须将 gitconfig 配置为使用 vscode 进行交互式变基。

就像是:

[core]
  editor = code --wait
Run Code Online (Sandbox Code Playgroud)

或者通过将您的环境设置为 GIT_EDITOR=code\ --wait

一旦您想做一些与众不同的事情,使用命令行会产生更好的结果。

  • 这解决了我的问题!我只有“edit = code”,当执行“git rebase -i origin/master”时,vscode 会自动进行 rebase ... (2认同)

Mar*_*rel 9

自 VS Code 1.51(2020 年 10 月)起,添加了名为“ Git: Rebasebranch... ”( )的命令: https ://code.visualstudio.com/updates/v1_51#_git-rebase-commandgit.rebase


Tom*_*uer 9

看起来这个 VS Code PR 引入了一个新git.rebaseWhenSync选项: https ://github.com/microsoft/vscode/pull/52527

我测试了它,看起来它按预期工作。


Ror*_*ane 6

我不认为Visual Studio Code具有内置的Git rebase功能。如果要使用git命令行工具或Git GUI在Visual Studio Code中进行基础调整,则可以为VS Code 安装GitLens扩展。

GitLens的自述文件表明GitLens支持重新定级。它表示在查看分支时,每个分支的上下文菜单包括以下命令:

  • 重新设置(交互式)分支(通过终端)
  • 将(交互式)分支重新设置为远程(通过终端)

当在一个分支中查看提交时,每个提交的上下文菜单都包含以下命令:

  • 变基以提交(通过终端)(如果可用)