我有一个大型 Rails 项目,其中随时都有多个功能分支处于活动状态。我们有一个长时间运行的任务(重建数据库,运行测试)。
我希望能够在一个功能分支上运行测试任务,同时更改另一个功能分支上的代码。有没有办法在某个分支上运行特定命令,但在另一个终端中激活另一个分支?
我有一个大型 Rails 项目,其中随时都有多个功能分支处于活动状态。我们有一个长时间运行的任务(重建数据库,运行测试)。
我希望能够在一个功能分支上运行测试任务,同时更改另一个功能分支上的代码。有没有办法在某个分支上运行特定命令,但在另一个终端中激活另一个分支?
一些 Git 命令可以对任何引用进行操作,它不必是当前检出到工作副本中的分支:
git log <branch>
git diff <branch-one> <branch-two>
其他 Git 命令仅在您当前已在工作副本中签出的分支上运行:
git reset --hard head@{1}
如果您的测试依赖于某个分支检出到您的工作副本中,那么据我所知,您不能将多个分支检出到您的工作副本中,您只能有一个工作副本。
作为替代方案,您可以再次克隆您的本地存储库,以通过这种方式获得第二个工作副本:
git clone <path to local repo> second-repo
我不这么认为...
如果确实需要这种行为并且会经常使用,那么在不同的位置再次克隆您的存储库可能是值得的。
您是否正在尝试运行需要很长时间才能运行的命令?
如果您的项目允许,您可以合并两个分支并从第一个分支运行命令,同时仍处理另一个分支的内容。