Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 - Fatal编程技术网

Git 如何创建本地分支而不获取其他本地分支的未限制更改?

Git 如何创建本地分支而不获取其他本地分支的未限制更改?,git,Git,我目前正在处理多个更改/错误,我希望能够使用单个本地分支单独处理这些更改/错误。但是,当我在工作的时候,例如“代码> BrangChina A/CODE >,然后我需要开始一个新的热门项目,我创建了一个 BrangChib B/,我仍然有我从 BrangChina A/Cuff>所做的更改。 以下是工作流程: 从dev分支创建并签出本地分支 对分支进行了本地更改(但没有通过git add进行转移或本地提交) 需要启动一个新的热bug,因此切换到devbranch,创建并签出branch\u b

我目前正在处理多个更改/错误,我希望能够使用单个本地分支单独处理这些更改/错误。但是,当我在工作的时候,例如“代码> BrangChina A/CODE >,然后我需要开始一个新的热门项目,我创建了一个<代码> BrangChib B/<代码>,我仍然有我从 BrangChina A/Cuff>所做的更改。

以下是工作流程:

  • dev
    分支创建并签出本地
    分支
  • 对分支进行了本地更改(但没有通过git add进行转移或本地提交)
  • 需要启动一个新的热bug,因此切换到
    dev
    branch,创建并签出
    branch\u b
  • 执行一个
    git状态
    ,我看到我在
    branch\u a上所做的更改
  • 如何创建一个新分支,而该分支没有我在
    branch\u a
    上所做的更改

    另外,当我结帐到另一家分行时,我会收到

    $ git checkout branch_b
    M   app/controllers/stuff.rb
    M   app/views/stuff/index.html.erb
    Switched to branch 'branch_b'
    
    M
    代表什么


    谢谢

    修改了
    M
    。你已经修改了那个文件,它还没有老化。在切换到新分支之前,您可以添加修改,然后将其作为正在进行的工作提交到
    branch\u a
    ,或者使用
    git stash
    在切换之前隐藏更改。

    修改
    M
    。你已经修改了那个文件,它还没有老化。在切换到新分支之前,您可以添加修改,然后将其作为正在进行的工作提交到
    branch\u a
    ,或者在切换之前使用
    git stash
    将更改隐藏起来。

    您需要将未写入的更改保存在某个位置。也就是说,除非你想摆脱它们,但你可能不想这么做


    这里的最佳解决方案几乎可以肯定。这使您可以“隐藏”未提交的更改,以便使用新的工作副本,然后您可以稍后重新应用隐藏的更改。

    您需要将未提交的更改保存在某个位置。也就是说,除非你想摆脱它们,但你可能不想这么做


    这里的最佳解决方案几乎可以肯定。这使您可以“隐藏”未注释的更改,以便使用新的工作副本,然后您可以稍后重新应用隐藏的内容。

    M表示已修改。首先,您必须将更改提交到当前分支或将其隐藏

    当你想把它们藏起来时:

    git add .
    # temporary stash your changes
    git stash
    # create a new branch
    git checkout -b branch_b
    # do your changes
    git commit -am 'fixed but in branch_b'
    # go back to branch a
    git checkout branch_a
    # get back your stash
    git stash pop
    
    当您选择提交更改时:

    git add .
    git commit -am 'changes in branch_a'
    # creating and checkout new branch
    git checkout -b branch_b
    # fix your bug
    git add .
    git commit -am 'just fixed a bug'
    

    M表示修改。首先,您必须将更改提交到当前分支或将其隐藏

    当你想把它们藏起来时:

    git add .
    # temporary stash your changes
    git stash
    # create a new branch
    git checkout -b branch_b
    # do your changes
    git commit -am 'fixed but in branch_b'
    # go back to branch a
    git checkout branch_a
    # get back your stash
    git stash pop
    
    当您选择提交更改时:

    git add .
    git commit -am 'changes in branch_a'
    # creating and checkout new branch
    git checkout -b branch_b
    # fix your bug
    git add .
    git commit -am 'just fixed a bug'
    

    M
    表示文件已修改。要想做你想做的事,我通常使用两种方法

    一种方法是在离开当前分支之前使用stash,call
    git stash
    ,所有更改都将被放入一个称为stash的“二级索引”中。当您返回到原始分支时,只需调用
    git stash pop
    将更改从隐藏中拉回来

    如果我预计我的新更改集将相当长的寿命,那么我也经常使用的另一种方法是只进行“wip”提交,稍后再进行恢复:

    (oldbranch)$ git add -A . && git commit -m"wip"
    (oldbranch)$ git checkout master && git checkout -b newbranch
    # work on the new branch....
    (newbranch)$ git checkout oldbranch
    (newbranch)$ git reset HEAD^
    

    git reset HEAD^
    将您的工作目录还原为分支当前头之前的提交,并将作为“wip”提交一部分的所有更改移回您的工作目录,有效地将您设置回原来的位置。

    M
    表示文件已被修改。要想做你想做的事,我通常使用两种方法

    一种方法是在离开当前分支之前使用stash,call
    git stash
    ,所有更改都将被放入一个称为stash的“二级索引”中。当您返回到原始分支时,只需调用
    git stash pop
    将更改从隐藏中拉回来

    如果我预计我的新更改集将相当长的寿命,那么我也经常使用的另一种方法是只进行“wip”提交,稍后再进行恢复:

    (oldbranch)$ git add -A . && git commit -m"wip"
    (oldbranch)$ git checkout master && git checkout -b newbranch
    # work on the new branch....
    (newbranch)$ git checkout oldbranch
    (newbranch)$ git reset HEAD^
    
    git reset HEAD^
    将您的工作目录还原为分支当前头之前的提交,并将作为“wip”提交一部分的所有更改移回您的工作目录,有效地将您设置回原来的位置