由于各种原因(主要是代码审查),我需要经常从当前的开发分支切换到其他分支。
目前,我使用'git stash'搁置未提交的更改,checkout其他分支,然后切换回'git stash apply'
但是,有时我会在那里添加一些新添加的文件,这些文件没有被跟踪。不幸的是,藏匿不会影响他们。在这种情况下,我必须将它们添加到索引和存储。
我在这里寻找的是一个工作流程,我必须执行一组最小的操作来切换分支,最好避免将文件添加到索引中。
答案 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,然后返回并检查你离开时所在的分支。