Git从当前签出的主数据库创建分支?

在一个服务器上有一个受git控制的文件夹,其中主分支被签出并且整个文件都被修改并且未被提交。 有没有办法让我将更改提交给单独的分支,以便我可以回到干净的版本?

即我想有效地撤消所有这些人的变化,但将它们存储在另一个机会中,因此如果该人想要更改他们可以切换到该分支。

(是的,我知道这不是git设计的工作方式,但这是我的情况!)任何想法都非常感谢。


首先移动到基于当前HEAD的不同分支,如下所示:

git checkout -b newbranch

提交所有更改(假设没有新添加的文件,否则git add它们):

git commit -a

回到主分支:

git checkout master

之前未提交的更改将全部位于新分支上,并且主控仍处于没有这些更改的状态。


这种方法很有用:

git checkout -B <new_branch> <start point>

哪里:

  • <new_branch>是你的新分支(例如my_branch
  • <start point>是您的起始分支(您的案例中的master
  • -B创建从<start point>新分支(如果它已经存在),然后将其重置为(当分支已经存在时,它不会以-b失败)
  • 有时-m可以用于指定何时切换分支,这将在当前分支和工作树内容(对脚本有用)之间执行三向合并。
  • 有关更多详细信息,请参阅: man git-checkout


    您始终可以隐藏您的更改。

    git stash
    git checkout -b bravenewmaster
    git stash apply
    

    另外请记住,如果您提交到“错误”分支,您总是可以将分支移回,因为分支不过是指向提交的指针。

    链接地址: http://www.djcxy.com/p/23589.html

    上一篇: Git create branch from current checked out master?

    下一篇: moving committed (but not pushed) changes to a new branch