git 中 rebase、reset、revert 有什么区别?
文章类型:git
发布者:hp
发布时间:2024-11-22
ebase、reset、和 revert 是 Git 中用于修改提交历史的三个不同的命令,它们的作用和效果有所不同,那么,区别在哪里呢
1:rebase,用于将一个分支的提交移到另一个分支上,并重新应用这些提交
整理提交历史:将多个小的提交合并成一个更为清晰的提交历史,避免历史混乱。
将本地提交与远程同步:在拉取远程更改之前,通过 rebase 将本地提交移动到远程提交的后面,使历史更为干净。
git pull --rebase origin branch_name
2:reset,用于移动 HEAD 指针和当前分支的引用
–soft:只移动 HEAD 指针,不改变工作目录和暂存区,保留更改
–mixed(默认):移动 HEAD 指针和暂存区,但不改变工作目录,将更改放回工作目录
–hard:移动 HEAD 指针、暂存区和工作目录,将所有更改丢弃
git reset --soft commit_hash
git reset --mixed commit_hash
git reset --hard commit_hash
3:revert ,用于创建一个新的提交,用来撤销之前的提交,不修改提交历史,而是创建新的提交来撤销之前的更改
git reset --mixed commit_hash