Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Git分支工作,然后决定是否需要一个新的分支,一些文件已经提交_Git_Git Branch - Fatal编程技术网

在Git分支工作,然后决定是否需要一个新的分支,一些文件已经提交

在Git分支工作,然后决定是否需要一个新的分支,一些文件已经提交,git,git-branch,Git,Git Branch,我知道如果我在一个分支中工作,我可以创建一个新的分支,我的所有提交都将转到新的分支。但是如果我一直在工作,我已经做了一些提交,仍然在工作,然后意识到需要一个新的分支,包括我已经做的提交(但没有推到原点),那该怎么办呢。有没有办法把所有东西都放到一个新的分支中?当然,请执行以下操作: git checkout -b new_branch 这将从当前头创建一个新分支。然后: git stash 这将暂时存储当前更改。然后: git checkout former_branch 回到以前的分支,

我知道如果我在一个分支中工作,我可以创建一个新的分支,我的所有提交都将转到新的分支。但是如果我一直在工作,我已经做了一些提交,仍然在工作,然后意识到需要一个新的分支,包括我已经做的提交(但没有推到原点),那该怎么办呢。有没有办法把所有东西都放到一个新的分支中?

当然,请执行以下操作:

git checkout -b new_branch
这将从当前头创建一个新分支。然后:

git stash
这将暂时存储当前更改。然后:

git checkout former_branch
回到以前的分支,然后:

git reset --hard HEAD^
这会将一个提交从
前分支的末尾倒回(使用任何您想要指向要返回的提交的内容,可能是
源代码/master
或其他内容)。最后:

git checkout new_branch
git stash pop

然后继续工作。

很好,但是太多了,只需git checkout-b newbranch就足够了:)@Tim:不过,这并不会倒回上一个分支的提交。我想OP并没有特别要求这样做,但如果需要的话,这是一种方法。是的,我不希望上一个分支上的提交。我今天要试一试。