如何将工作和更改从master分支移动到新创建的分支,并在移动后保持master分支不变?
Answers:
您可以使用(或创建一个指向当前提交的新分支git branch branchnamegit checkout -b branchname如果您想直接检出它)。这基本上将复制您的master分支,因此您可以在那里继续工作。
如果您已成功复制了分支,则可以master使用git reset --hard commitwherecommit是提交的哈希值将其重置为原始点,该哈希应该是主节点上的最后一个哈希值。
因此,例如您遇到这样的情况:
---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6
^ ^
original master
master commit
所以,你已经签出master的承诺6,并希望创建一个新的分支ticket指向该6复位时master到3:
git branch ticket
git reset --hard 3
git checkout ticket
然后,您ticket指向提交6,而master指向3。
-b在git checkout告诉Git的检查出来之前创建的分支。基本上是git branch name和的捷径git checkout name;当您要开始为某个新分支工作时,通常会使用它。
git stash用来将工作保存到其他地方。
如果您在意识到自己应该进入分支机构之后两次提交(说),则只需执行
git branch work_branch
git reset --hard HEAD~2
将2替换为要返回的提交数。此时,您仍将处于掌握状态,如果您想移至分支机构继续工作,只需git checkout work_branch
看看git rev-parse --help您是否想了解如何遍历备份提交树的语法,例如HEAD~2
我通过以下方法解决了这个问题
步骤1:从受感染的master分支中创建一个新分支,并将其命名为master_infected;
步骤2:现在hard reset将受感染的master分支机构删除commits 由
git reset --hard HEAD~2
(commits之前返回两个,HEAD因为就我而言,我污染了两个commits。所以对于你而言,可能有所不同)
现在,我的master_infected分支包含要保留的代码(正如我所说的受污染的代码),并且该master分支现在处于保存模式。
master。如果您需要在其他开发线上使用它,则必须研究git-rebase