【问题标题】:Manage multiple branches管理多个分支
【发布时间】:2022-11-17 11:20:03
【问题描述】:
  1. 当我开始编码时,我有两个分支 Main 和 PopUp。
  2. 我在 PopUp 分支工作,但我不得不停下来,因为我需要在另一个功能中工作。
  3. 为了使用这个新功能,我创建了另一个名为 Form 的分支。
  4. 我完成了Form分支的工作,我也合并到主分支,之后我删除了这个分支。
  5. 现在我继续在 PopUp 分支中工作,但我看不到由 Form 分支实现的更改。
  6. 当我移动到主分支时,我可以看到 Form 分支实施的更改。
  7. 但是当我再次移动到 PopUp 分支时,我看不到这些变化。

    您能帮我看看 PopUp 分支中的这些更改吗,但我不想丢失我在 Pop Up 分支中所做的工作。

    在 form 分支中所做的更改是完全独立的(HTML 中的另一个部分,在这里我还创建了一个单独的 JS 文件和一个单独的 CSS 文件),我在 popUp 分支中所做的工作,但我希望看到更改.

    谢谢 编码愉快 ;)

    当我移动到 PopUp 分支并使用 git status 检查它时,告诉我它是最新的。 我使用终端与 github 交互。

【问题讨论】:

  • 得到好的显示并发分支的 git GUI,例如 GitKraken 或 SourceTree。我认为仅使用现成的git 工具很难想象或理解 git 分支、存储、工作树等。

标签: git git-branch


【解决方案1】:

Git 为这个问题提供了一个不错的解决方案,尽管未被充分重视:您可以为您的存储库创建辅助“工作树”,每个都有一个不同的检出分支。

请参阅'worktree' tag,特别是What would I use git-worktree for?,了解有关此主题的良好描述和讨论。

这是一个合法的用例,它一直出现。典型的建议是使用 git stash 以便从处理一项任务切换到另一项任务,但我发现这非常具有破坏性。当我正在处理某事时,拥有多个 Git 工作树多次成为我的救星,我需要切换分支以快速修复错误。

【讨论】: