git 的rebase、reset、revert区别?

打印 上一主题 下一主题

主题 989|帖子 989|积分 2967

区别

rebase、reset、和 revert 是 Git 中用于修改提交汗青的三个不同的命令,它们的作用和结果有所不同。
1. rebase:

git rebase 用于将一个分支的提交移到另一个分支上,并重新应用这些提交。主要有两种用途:


  • 整理提交汗青:将多个小的提交归并成一个更为清晰的提交汗青,避免不必要的汗青混乱。
  • 将本地提交与长途同步:在拉取长途更改之前,通过 rebase 将本地提交移动到长途提交的反面,使汗青更为干净。
  1. # 从当前分支拉取最新的远程变更并应用到本地分支
  2. git pull --rebase origin branch_name
复制代码
2. reset:

git reset 用于移动 HEAD 指针和当前分支的引用,主要有三种模式:


  • –soft:只移动 HEAD 指针,不改变工作目录和暂存区,保存更改。
    1. git reset --soft commit_hash
    复制代码
  • –mixed(默认):移动 HEAD 指针和暂存区,但不改变工作目录,将更改放回工作目录。
    1. git reset --mixed commit_hash
    复制代码
  • –hard:移动 HEAD 指针、暂存区和工作目录,将全部更改丢弃。
    1. git reset --hard commit_hash
    复制代码
3. revert:

git revert 用于创建一个新的提交,用来打消之前的提交。与 reset 不同,revert 不修改提交汗青,而是创建新的提交来打消之前的更改。
  1. git revert commit_hash
复制代码
在打消多个提交时,可能会遇到辩论,必要手动解决辩论后再提交。
区别总结:



  • rebase 用于修改提交汗青的顺序,将一系列提交重新应用到新的基底上。
  • reset 用于移动 HEAD 指针,可以用来打消提交、取消暂存区的更改大概彻底丢弃更改。
  • revert 用于创建新的提交,打消之前的提交,不改变汗青。
选择使用哪个命令取决于你的需求和工作流程。在共享的分支上使用 rebase 和 reset 时要小心,因为它们会改变提交汗青,可能引发辩论。
git 常用命令

Git 提供了很多命令,用于在版本控制系统中进行代码的管理和协作。以下是一些常用的 Git 命令:
底子命令:


  • git init:初始化一个新的 Git 堆栈。
  • git clone:从长途堆栈克隆项目。
  • git add:将工作目录中的更改添加到暂存区。
  • git commit:将暂存区的更改提交到本地堆栈。
查看和比较:


  • git status:查看工作目录和暂存区的状态。
  • git log:查看提交汗青。
  • git diff:查看工作目录和暂存区的文件差异。
分支管理:


  • git branch:列出本地分支,或创建新分支。
  • git checkout:切换分支或还原文件。
  • git merge:归并指定分支到当前分支。
  • git pull:拉取长途分支并归并到当前分支。
  • git push:将本地分支推送到长途堆栈。
长途堆栈:


  • git remote:管理长途堆栈。
  • git fetch:从长途堆栈拉取变更但不归并。
  • git pull:拉取长途堆栈的变更并归并。
打消和重置:


  • git revert:打消指定的提交。
  • git reset:重置当前分支的 HEAD,可用于回退提交、取消暂存等。
  • git clean:移除未跟踪的文件。
标签和版本:


  • git tag:列出或创建标签。
  • git describe:显示离当前提交近来的标签。
其他:


  • git config:设置 Git 属性。
  • gitignore:设置忽略文件,告诉 Git 哪些文件不应纳入版本控制。
这只是 Git 命令的一小部分,更多的命令和选项可以通过 git --help 查看 Git 的官方文档大概参考 Git 的官方文档:Git Documentation。

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

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

惊雷无声

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