Git - 在工作中间切换分支

时间:2010-03-13 02:03:56

标签: git version-control branch git-branch git-stash

由于各种原因(主要是代码审查),我需要经常从当前的开发分支切换到其他分支。

目前,我使用'git stash'搁置未提交的更改,checkout其他分支,然后切换回'git stash apply'

但是,有时我会在那里添加一些新添加的文件,这些文件没有被跟踪。不幸的是,藏匿不会影响他们。在这种情况下,我必须将它们添加到索引和存储。

我在这里寻找的是一个工作流程,我必须执行一组最小的操作来切换分支,最好避免将文件添加到索引中。

3 个答案:

答案 0 :(得分:3)

您可以克隆存储库并查看/处理克隆。完成后删除克隆。如果您确实在分支/克隆上进行了更改,则可以将其推回。我认为本地克隆是便宜的。即使不是这样,磁盘空间仍然比你的时间便宜。

答案 1 :(得分:1)

您可以将repo克隆到另一个目录,并默认为您想要的分支:

# assume your original repo is in myproj
$ git clone myproj myproj_clone --branch my_branch

如果您转到myproj_clone文件夹,它将在您的分支

$ cd myproj_clone
$ git branch
* my_branch

答案 2 :(得分:0)

我不确定克隆是否是正确的解决方案,但由于2个答案提出它在大脑上,所以我提供了对该主题的修改。克隆可能并不便宜。就磁盘空间而言,这是无关紧要的,但是克隆本身需要花费几秒钟的时间,而且这是浪费在不必要的操作上的太多时间。作为替代方案,您可以使用旧的git working dir创建一个新的工作目录。即,如果您当前工作的目录是“a”(包含更改和未分阶段的文件),请尝试:

$ mkdir ../b
$ cd ../b
$ echo 'gitdir: ../a/.git' > .git
$ git checkout -f foo

现在b实际上是分支foo上的a的克隆,并且你有两个工作目录可以使用。在工作目录b中执行你需要的分支foo,然后返回并检查你离开时所在的分支。