如何将更改从一个分支移动到另一个分支git?
我应该先创build一个分支,然后在那里进行修改。 但是,我在工作副本master
分支中进行了更改。
现在,在做了一系列更改之后,我创build了一个与我正在处理的JIRA事件相关的分支。 如何将我的更改从master
分支移动到新创build的分支,并保持主分支完好无损?
你可以使用git branch branchname
创build一个指向当前提交的新分支(如果你想直接检查它,可以使用git checkout -b branchname
)。 这将基本上复制你的主分支,所以你可以继续在那里工作。
如果你已经成功地复制了分支,你可以通过使用git reset --hard commit
来将master
重置为原来的位置,其中commit
是应该是master上最后一个commit
的哈希。
所以举个例子,你有这样的情况:
---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6 ^ ^ original master master commit
所以你已经检查了提交6
master
,并且你想创build一个新的分支机构指向6
而重新设置master
为3
:
git branch ticket git reset --hard 3 git checkout ticket
然后你在ticket
指着提交6
,而master
指向3
。
如果你在意识到自己应该在一个分支之后犯了两次错误,那就简单的做吧
git branch work_branch git reset --hard HEAD~2
用您想要去的提交数量replace2。 在这一点上你仍然是主人,如果你想转移到分支继续工作,只是git checkout work_branch
请参阅git rev-parse --help
如果你想了解如何遍历你的提交树的语法,像HEAD~2
从你应该有的地方创build一个新的分支,然后樱桃select不正确的分支上的变化到新的分支。
然后,您可以删除坏的分支,假设您没有将其推到其他地方,并对其进行了其他更改。