首页 > 其他 > 详细

git应用的问题--提交到错误的分支

时间:2021-05-06 09:41:38      阅读:24      评论:0      收藏:0      [点我收藏+]

git应用的问题--提交到错误的分支

在使用git的过程中,我们会接触到数个分支,因此也容易出现将内容提交到错误的分支的情况。因此我们需要将这次提交移动回到正确的分支,这里我们使用git中的命令对问题进行修正(当然你也可以通过回忆和对比将内容重新还原出来)。这里我们分成两种情况:

  1. 未提交到远端
  2. 已经提交到远端

未提交到远端

假设我们的git目前是这个情况,feature-1, feature-2已经合并到develop上。

技术分享图片

接着我们将原本应该提交到feature-1上的内容提交了feature-2分支上,因此会形成下图的情况。

技术分享图片

由于我们的还未将代码提交到远程,因此只要使用git cherry-pick以及git reset便可将代码移动到正确的分支上,同时将develop分支进行还原。

  1. git checkout feature-1切换分支到feature-1上。
  2. git cherry-pick fa4d006将错误的提交通过cherry-pick命令单独拉取到feature-1上,其中fa4d006就是那一次错误的提交的编码。
  3. git checkout feature-2切换到feature-2分支。
  4. git reset --hard 548e65cfeature-2分支完全重置到提交前的状态。

经过以上的步骤,我们得到的节点树就如下图,已经回到了正确的情况。注意在操作的时候,要先进行cherry-pickreset重置。

技术分享图片

已经提交到远端

接着我们来讲讲当在下图已经提交到远程时怎么办。

技术分享图片

由于我们本地的修改已经同步到远端,那么再通过之前的git reset是不会改变远端的git版本,除非我们使用git push -f来强制重置远端的feature-2分支情况。

但是!但是!但是!

git push -f可以说是非常危险??????的操作,因为你的强制推送可能会导致所有使用当前git项目的人都出现版本混乱问题,非常不建议在团队中使用该操作。

因此我们将换成git revert来重置feature-2分支的情况。下面我们来看看操作步骤:

  1. 先是git checkout feature-1git cherry-pick fa4d006将错误的提交拉取到feature-1上。
  2. git checkout feature-2切换到feature-2分支。
  3. git revert fa4d006将错误的提交进行回滚。
  4. git push最后将feature-2同步到远端。

经过上面的步骤我们就可以将分支回到正确的情况了,cherry-pickrevert之间就没有先后顺序了。

技术分享图片

git应用的问题--提交到错误的分支

原文:https://www.cnblogs.com/leney/p/14732843.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!