有没有办法在不同的git分支上运行命令?

时间:2013-08-07 17:29:53

标签: git

我有一个大型rails项目,任何时候都有多个功能分支处于活动状态。我们有一个长期运行的任务(重建数据库,运行测试)。

我希望能够在一个功能分支上运行测试任务,同时在另一个功能分支上更改代码。有没有办法在某个分支上运行特定命令,但在另一个终端中有另一个分支活动?

2 个答案:

答案 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)

我不这么认为......

如果确实需要这种行为,并且经常使用,那么在另一个位置再次克隆您的存储库可能是值得的。

您是否尝试运行需要很长时间才能运行的命令?

如果您的项目允许,您可以合并两个分支并从第一个分支运行命令,同时仍然处理来自另一个分支的东西。