Git从当前签出的主人创build分支?
在服务器上有一个受git控制的文件夹,主分支已经被签出,整个文件都被修改了,没有被提交。 有没有办法让我把变化提交到一个单独的分支,所以我可以回到一个干净的版本?
即我想有效地撤消所有这些人的变化,但将其存储在另一个机会,所以如果该人想要他们的变化,他们可以切换到该分支。
(是的,我知道这不是git的devise工作,但这是我的情况!)任何想法非常感激。
首先移动到基于当前HEAD的不同分支是这样执行的:
git checkout -b newbranch
提交所有更改(假设没有新添加的文件,否则git add
它们):
git commit -a
回到主分支:
git checkout master
以前未提交的更改将全部在新分支上,并且主人仍然处于没有这些更改的状态。
您可以随时隐藏您的更改。
git stash git checkout -b bravenewmaster git stash apply
另外请记住,如果您提交到“错误”的分支,您总是可以将该分支移回,因为分支不过是指向提交的指针。
这个方法很有用:
git checkout -B <new_branch> <start point>
哪里:
-
<new_branch>
是你的新分支(例如my_branch
) -
<start point>
是你的起始分支(你的情况下是master
) -
-B
创build从<start point>
新分支(如果它已经存在),然后将其重置为(当分支已经存在时,它不会以-b
失败) - 有时
-m
可以用来指定何时切换分支,这将执行当前分支和工作树内容(对脚本有用)之间的三方合并。
请参阅: man git-checkout
获取更多详细信息。