You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git Rebase不符合预期求助:替代TFS/Azure Shelvesets方案

Git使用疑问:变基重复处理提交与TFS搁置集替代方案

背景与需求

  • 技术基础:入门级,10年前曾用Atlassian Sourcetree处理Git项目,工作中长期使用TFS/Azure
  • 核心需求:找到Git中替代TFS/Azure 搁置集(shelvesets) 的方案,满足以下场景:
    • 可在主项目分支正常开发、提交代码
    • 随时取出长期重构的搁置分支继续开发,必要时可重新搁置
    • 能撤销本地修改、提交新功能后,再回到搁置的重构项目

当前操作与遇到的问题

我基于master分支创建了devbranch分支(每个迭代会从它拉出子分支),再基于devbranch创建了longtimerefactor分支用于长期重构。原本计划定期执行git rebase devbranch longtimerefactor,将devbranch的最新变更同步到重构分支,但完成一次变基(此时重构分支领先devbranch30多个提交)后,再次执行该命令时,Git仍然要求合并大量提交,这和Git文档中的示例不符——我以为Git会识别分支间无新变更,直接跳过变基操作。

我有几个疑问:

  • 是否遗漏了关键操作步骤?
  • 是否需要添加--onto参数才能正确执行变基?
  • 当前的分支模式是否能实现我的核心需求?
  • 我了解过git worktrees,但感觉不是最优解,且目前重构分支还无法合并到devbranch

Git日志输出

执行命令C:\git\workspace\galaxy>git log --oneline --graph --decorate employee-rework master development的输出如下:

* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
:...skipping...
* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
| * | | 62d3998 Employee() WIP
| * | | b3698ea Rework of Employee() - WIP - Init
:...skipping...
* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
| * | | 62d3998 Employee() WIP
| * | | b3698ea Rework of Employee() - WIP - Init
| * | | c8c401c merged just an other time
| * | | e86a84c merge :(
| * | | 115ef28 Employee() WIP 12
| * | | e56f80b Employee() WIP 13
| * | | fa0c4c3 Employee() WIP 14
| * | | 86f2a01 Employee() WIP 15
:...skipping...
* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
| * | | 62d3998 Employee() WIP
| * | | b3698ea Rework of Employee() - WIP - Init
| * | | c8c401c merged just an other time
| * | | e86a84c merge :(
| * | | 115ef28 Employee() WIP 12
| * | | e56f80b Employee() WIP 13
| * | | fa0c4c3 Employee() WIP 14
| * | | 86f2a01 Employee() WIP 15
| * | | 1bfda2e Rework of Employee() - WIP - Init
* | | | f3fe064 get vehicle info cleanup
* | | | 70f5309 Employee() WIP 16
* | | | bbe3e0d Employee() WIP 17
:...skipping...
* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
| * | | 62d3998 Employee() WIP
| * | | b3698ea Rework of Employee() - WIP - Init
| * | | c8c401c merged just an other time
| * | | e86a84c merge :(
| * | | 115ef28 Employee() WIP 12
| * | | e56f80b Employee() WIP 13
| * | | fa0c4c3 Employee() WIP 14
| * | | 86f2a01 Employee() WIP 15
| * | | 1bfda2e Rework of Employee() - WIP - Init
* | | | f3fe064 get vehicle info cleanup
* | | | 70f5309 Employee() WIP 16
* | | | bbe3e0d Employee() WIP 17
* | | | 298fac8 employee()
* | | | 9a8a5d6 2022-08-08 employee() WIP
* | | | e009551 Employee() WIP
:...skipping...
* 602c464 (HEAD -> employee-rework, origin/employee-rework) Employee() WIP
* c7e22d8 after rebase...
*   3b8ee0c "Resolve the conflicts and commit the results"
|\
| * 765ee88 get vehicle info cleanup
| * 6d6a8a6 git ignor
| * d97a587 Employee() WIP
| * b5dc143 Employee() WIP 2
| *   94bb179 "merge fun"
| |\
| | * 1adbb8b employee()
| | * 21dd371 Employee() WIP 3
| | * 221b3cb Employee() WIP 4
| | *   40ba32c rebased + merged
| | |\
| | | * e9ba607 Rework of Employee() - WIP - Init
| | * | 7984a02 merged
| | * | 4f0f74e more merge?
| | * | 3f4302c Employee rework() 5
| | * | 725de3a Employee() WIP 6
| | * | d5497ab Employee() WIP 7
| | * | c0615c5 Employee() WIP 8
| | * | b49da67 Rework of Employee() - WIP - Init
| * | | 2a1ef6d Employee() WIP 9
| * | | 3b00c26 employee() pre-rebase
| * | | 24bd4fc employee() WIP 10
| * | | 7e281ac Employee() WIP 11
| * | | 62d3998 Employee() WIP
| * | | b3698ea Rework of Employee() - WIP - Init
| * | | c8c401c merged just an other time
| * | | e86a84c merge :(
| * | | 115ef28 Employee() WIP 12
| * | | e56f80b Employee() WIP 13
| * | | fa0c4c3 Employee() WIP 14
| * | | 86f2a01 Employee() WIP 15
| * | | 1bfda2e Rework of Employee() - WIP - Init
* | | | f3fe064 get vehicle info cleanup
* | | | 70f5309 Employee() WIP 16
* | | | bbe3e0d Employee() WIP 17
* | | | 298fac8 employee()
* | | | 9a8a5d6 2022-08-08 employee() WIP
* | | | e009551 Employee() WIP
* | | | 683b122 Rework of Employee() - WIP - Init
* | | | 4d4c67e some merge
* | | | 2782354 Employee rework()
:

内容的提问来源于stack exchange,提问作者CupOfCoffee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:04:06