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