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获取更多详细信息。