Git怎样将一个分支上的修改转移到另一个分支

打印 上一主题 下一主题

主题 938|帖子 938|积分 2818

在我们利用git举行版本控制时,当代码写错分支,怎么将这些修改转移到正确的分支上去呢?这时,我们可以利用git stath下令来暂存我们的修改,然后再切换到其他分支
未commit(提交)操纵时

1. 先将修改存入暂存区

   git add .  2. 把暂存区内的修改存储起来 

   git stash                      3. 切换到正确的分支 

   git checkout dev              4. 将存储的修改取出来 

   git stash pop                  已commit(提交)操纵时 

必要撤回commit之前的状态,

   git reset HEAD^   
  然后继续未commit的步骤即可
已经push到长途堆栈时

1.回滚到指定版本


  • 不生存原更改代码
假如你盼望完全撤销到某个特定的提交版本,并且不生存之后的全部更改(包括未提交的修改),可以利用git reset下令配合--hard选项。这将把HEAD指针(以及当前分支)直接移动到指定的提交上,丢弃之后的全部更改。
   git reset --hard <commit-id>
  

  • 生存原更改代码,并生成新的提交
假如你盼望撤销某个特定的提交,但又想生存该提交之后的全部更改,并生成一个新的提交来替代那个被撤销的提交,可以利用git revert下令。这会在你的项目历史中插入一个新的提交,这个新提交是原来被撤销提交的“反向补丁”。
   git revert <commit-id>
  

  • 强制推送更改到长途堆栈
当你通过git reset或git revert修改了本地堆栈的历史后,你必要将这些更改推送到长途堆栈。由于这些更改改变了长途堆栈的历史,你必要利用强制推送(git push -f)来覆盖长途堆栈的历史。
   git push -f origin 分支名
  警告:强制推送会覆盖长途堆栈的历史,影响全部共享该分支的协作者。在执行此操纵前,请确保全部协作者都了解这一变动,并已经同步了他们的本地堆栈以制止数据丢失。
总结



  • 未commit时,暂时存储- 切分支- 开释暂时存储,已commit时,回撤状态,继续执行未commit时操纵
  • 利用git reset --hard来完全撤销到某个特定的提交,但会丢失之后的更改。
  • 利用git revert来撤销某个特定的提交,同时生存之后的更改,并生成一个新的提交。
  • 在修改了本地堆栈的历史后,利用git push -f来强制推送更改到长途堆栈,但请谨慎操纵以制止不必要的问题。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表