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