Git如何将一个分支上的修改转移到另一个分支
在我们使用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
来强制推送更改到远程仓库,但请谨慎操作以避免不必要的问题。
原文地址:https://blog.csdn.net/m0_71071209/article/details/140645693
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!