代码之家  ›  专栏  ›  技术社区  ›  Art

git-工作中在分支之间切换

  •  2
  • Art  · 技术社区  · 16 年前

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

    目前,我使用“git stash”搁置未提交的更改,签出其他分支,然后切换回并执行“git stash apply”

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

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

    3 回复  |  直到 16 年前
        1
  •  1
  •   hasen    16 年前

    您可以将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
  •  3
  •   Thilo    16 年前

    您可以克隆存储库并查看/处理克隆。完成后删除克隆。如果确实对分支/克隆进行了更改,则可以将其推后。我觉得本地克隆人很便宜。即使没有,磁盘空间仍然比你的时间便宜。

        3
  •  0
  •   William Pursell    16 年前

    我不确定克隆是否是正确的解决方案,但由于有两个答案表明克隆是在大脑中进行的,所以我对这个主题进行了修改。克隆可能并不便宜。就磁盘空间而言,这是无关紧要的,但克隆本身需要几秒钟的时间,这太多时间浪费在不必要的操作上。另一种方法是,只需使用旧的git工作目录创建一个新的工作目录。例如,如果当前工作目录是“A”(包含更改和未暂存的文件),请尝试:

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

    现在b实际上是a的克隆,在branch foo上,有两个工作目录可供使用。在工作目录B中的branch foo上执行所需操作,然后返回A并签出离开时所在的分支。