在我们利用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企服之家,中国第一个企服评测及商务社交产业平台。 |