复制一个脏分支以保留它的新分支

时间:2017-01-18 12:22:24

标签: git

我有一个包含多个更改的分支,我想将其内容复制到一个新分支。这个新分支基本上会有相同的内容,可能会少一些。那么,是否可以为新的或另一个分支复制一个脏分支?

2 个答案:

答案 0 :(得分:2)

怎么样?

git checkout -b <new-branch>

答案 1 :(得分:2)

我认为你误解了git是如何工作的。每个分支只是指向特定提交的指针。

没有脏分支这样的东西。当你检出分支时,你可能正在考虑这种情况,并且你有一个脏的工作树。 (这意味着您已对工作树进行了更改,但尚未提交)。但分支并不脏。工作树很脏。

唯一方式可以保存 分支上的东西是提交它。如果你不推动分支,只需创建一个临时提交就可以了:

git add -A
git commit -m "tmp commit"
git checkout -b new_branch
git reset HEAD^     #this will reset the branch pointer to the previous commit,
                    #but keep the work-tree

当你想回到原始分支并恢复肮脏的工作树时:

git checkout original_branch
git reset HEAD^

或者,您可以将更改保存在存储中。这可能是首选解决方案:

git add -A
git stash --keep-index
git checkout -b new_branch

当你想回到原始分支并恢复肮脏的工作树时:

git checkout original_branch
git stash pop