【问题标题】:Is it possible to do a Git Pull --rebase with Visual Studio git tools (and can it be set by default)是否可以使用 Visual Studio git 工具执行 Git Pull --rebase(并且可以默认设置)
【发布时间】:2015-04-01 20:04:11
【问题描述】:

首先,正如标题所说,是否可以在一个步骤中(即不是fetch 然后rebase)执行pull --rebase

第二,Visual Studio 中的一个设置,强制内置的团队资源管理器 git 工具始终执行 pull --rebase 而不是标准的 pull (fetch/merge)

我知道您可以使用 git config branch.autosetuprebase always 在全局或项目配置文件中设置默认值,但我想特别了解 Visual Studio 是否可以像大多数其他 GUI 一样更新/更改该设置或具有类似选项.我找不到任何东西,所以似乎没有,因此提出了问题。

【问题讨论】:

  • 将 IDE 用于 IDE 内容,将版本控制工具用于版本控制 stackoverflow.com/q/19358148/520162。我不知道有任何 IDE 可以很好地应对 Git 的强大功能,所以我使用 Git 唯一真正的界面,即命令行。但是,我不会使用命令行开始调试或编程。这就是 IDE 通常擅长的地方。
  • 我个人同意你的观点,但我的问题非常具体,因为还有其他人可能会购买尽可能多地使用 IDE 生态系统。我希望在管理 git 最佳实践的同时尽量减少它们的干扰。如果最终的答案只是使用 CLI 或 SourceTree 之类的工具,那么最好有具体的原因,比如你不能用 IDE 做 X
  • @CarrieKendall 我什至没有想过要看答案。谢谢。
  • +1 表示git config branch.autosetuprebase always。这是我今天的新知识,请等到明天再说。

标签: git visual-studio visual-studio-2013 visual-studio-2015 rebase


【解决方案1】:

在 VS2017 中,您可以使用内置功能更改 rebase 的 git 设置:转到 团队资源管理器 -> 主页 -> 设置 -> 全局设置存储库设置 -> 设置 rebase 本地分支时拉动True (screenshot)

【讨论】:

  • 知道我是否可以检查源代码控制,因此这也成为其他团队成员对于特定 repo 的默认设置?还是必须通过某种视觉工作室政策来共享?
【解决方案2】:

Visual Studio 2015 不支持 pull+rebase。 您可以通过执行 'branch' 获取手动实现它,然后对 'origin/branch' 执行 rebase。但不是自动的。

如果在全局 git 设置中将其配置为默认选项,Visual Studio 2017(候选发布版)当前将执行 pull+rebase。它目前仍然会给你一个警告,说“意外的合并结果”。我希望这会在最终版本出来之前得到解决。

【讨论】:

  • 2015 不直接支持 pull --rebase 但它支持重新定位到最新的远程分支。
  • 执行提取后从分支窗口。
【解决方案3】:

打开 Git Bash 并粘贴:

git config --global branch.autosetuprebase always

这将使每个未来的pull 成为pull --rebase

【讨论】:

  • Visual Studio 2015 中的 git 客户端实现不支持此设置。
  • 它对我有用,但是,如果你有未提交的更改,它会退回到正常的拉动。我还没有在 Visual Studio 中找到“git stash”。
  • 它在切换分支时会自动存储/取消存储。否则它不支持存储,您可以创建另一个临时分支。
  • Visual Studio 在拉取时会忽略您更改的任何设置。在没有任何本地更改的情况下进行拉取将导致快进(因此没有合并提交)。我已经更改了您提供的设置(并设置了pull.rebase preserve),并且通过本地更改它会创建一个合并提交。每当您点击同步时,Vs 都会执行 pull --no-rebase(来源:visualstudio.uservoice.com/forums/121579-visual-studio-ide/…
【解决方案4】:

这与实际的rebase pull 非常接近。

首先在你想变基的遥控器上进行提取。它不会是“pull --rebase”,但您可以转到团队资源管理器 > 分支 > 遥控器 >(选择您的遥控器)> 右键单击​​您想要的分支 rebase onto 并单击 rebase onto 单击 rebase基本上已经对远程分支进行了拉取/变基。

(但目前这是在不运行到 git bash 的情况下重新定位到远程更新的唯一方法)

【讨论】:

    猜你喜欢
    • 2022-07-11
    • 2022-08-17
    • 2017-01-02
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多