git 的rebase、reset、revert区别?

这篇具有很好参考价值的文章主要介绍了git 的rebase、reset、revert区别?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区别

rebasereset、和 revert 是 Git 中用于修改提交历史的三个不同的命令,它们的作用和效果有所不同。

1. rebase:

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

  • 整理提交历史:将多个小的提交合并成一个更为清晰的提交历史,避免不必要的历史混乱。

  • 将本地提交与远程同步:在拉取远程更改之前,通过 rebase 将本地提交移动到远程提交的后面,使历史更为干净。

# 从当前分支拉取最新的远程变更并应用到本地分支
git pull --rebase origin branch_name

2. reset:

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

  • –soft:只移动 HEAD 指针,不改变工作目录和暂存区,保留更改。

    git reset --soft commit_hash
    
  • –mixed(默认):移动 HEAD 指针和暂存区,但不改变工作目录,将更改放回工作目录。

    git reset --mixed commit_hash
    
  • –hard:移动 HEAD 指针、暂存区和工作目录,将所有更改丢弃。

    git reset --hard commit_hash
    

3. revert:

git revert 用于创建一个新的提交,用来撤销之前的提交。与 reset 不同,revert 不修改提交历史,而是创建新的提交来撤销之前的更改。

git revert commit_hash

在撤销多个提交时,可能会遇到冲突,需要手动解决冲突后再提交。

区别总结:

  • rebase 用于修改提交历史的顺序,将一系列提交重新应用到新的基底上。
  • reset 用于移动 HEAD 指针,可以用来撤销提交、取消暂存区的更改或者彻底丢弃更改。
  • revert 用于创建新的提交,撤销之前的提交,不改变历史。

选择使用哪个命令取决于你的需求和工作流程。在共享的分支上使用 rebasereset 时要小心,因为它们会改变提交历史,可能引发冲突。

git 常用命令

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

基础命令:

  1. git init:初始化一个新的 Git 仓库。

  2. git clone:从远程仓库克隆项目。

  3. git add:将工作目录中的更改添加到暂存区。

  4. git commit:将暂存区的更改提交到本地仓库。

查看和比较:

  1. git status:查看工作目录和暂存区的状态。

  2. git log:查看提交历史。

  3. git diff:查看工作目录和暂存区的文件差异。

分支管理:

  1. git branch:列出本地分支,或创建新分支。

  2. git checkout:切换分支或还原文件。

  3. git merge:合并指定分支到当前分支。

  4. git pull:拉取远程分支并合并到当前分支。

  5. git push:将本地分支推送到远程仓库。

远程仓库:

  1. git remote:管理远程仓库。

  2. git fetch:从远程仓库拉取变更但不合并。

  3. git pull:拉取远程仓库的变更并合并。

撤销和重置:

  1. git revert:撤销指定的提交。

  2. git reset:重置当前分支的 HEAD,可用于回退提交、取消暂存等。

  3. git clean:移除未跟踪的文件。

标签和版本:

  1. git tag:列出或创建标签。

  2. git describe:显示离当前提交最近的标签。

其他:

  1. git config:配置 Git 属性。

  2. gitignore:配置忽略文件,告诉 Git 哪些文件不应纳入版本控制。

这只是 Git 命令的一小部分,更多的命令和选项可以通过 git --help 查看 Git 的官方文档或者参考 Git 的官方文档:Git Documentation。文章来源地址https://www.toymoban.com/news/detail-809873.html

到了这里,关于git 的rebase、reset、revert区别?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert

    目录 背景 一、(git log、git reflog)查看git提交日志及命令历史 1.1 git log(提交日志)  1.2 git reflog(命令历史) 二、git reset(回退到指定的版本,并且保留更改) 2.1 回退到指定版本 2.2 快捷回退上一版本 三、git reset --hard(回退到指定版本,不保留更改) 四、git revert(回退

    2024年02月12日
    浏览(54)
  • git版本回退(git reset、git revert、git stash)

    本文 git 相关命令: git reset: 回退版本,可指定某一次提交的版本。 git reset [--soft | --mixed | --hard] commitId 。 git revert: 撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。 git revert commitId 。 git commit --amend: git commit –amend 既可以对上次提交的内容进行修改,也

    2024年02月08日
    浏览(56)
  • git代码回滚是使用reset还是revert

    时光不能回退,Git却允许我们改变历史。 想要让Git回退历史,有以下步骤: 快捷命令: 【注:HEAD是指向当前版本的指针,HEAD^表示上个版本,HEAD^^表示上上个版本】 如果修改到的文件比较少,我们可以不通过命令回滚的方式,手动删除之前的修改,再进行提交。 reset和reve

    2024年02月07日
    浏览(92)
  • 【git 使用】超级好用的 git reset 和 git revert 功能对比和使用方法

    首先你要知道 git 区分暂存区和工作区,如果你用过 sourcetree 你就会知道 git reset 命令用于将当前分支的 HEAD 指针移动到指定的提交,并且可以选择性地修改工作区和暂存区的状态。 git reset 命令有几种常用的用法,主要包括: git reset --soft commit-id:  被 reset 的提交会放到暂存

    2024年02月20日
    浏览(44)
  • idea中git相关知识(revert,reset,stash/unstash changes使用)

    白色:已经加入版本控制,已提交,无改动 蓝色:已经加入版本控制,已提交,有改动 绿色:已经加入版本控制,还未提交 红色:未加入版本控制 工作区,暂存区,版本库 ● 工作区:项目目录,开发存放代码的地方。 ● 暂存区:数据暂时存放的地方。待提交区,存放有

    2024年02月05日
    浏览(58)
  • git版本回退:revert回退其中一个提交/reset回退到某个版本

      对于已经push或没有push的,回退commit方式一致。只是最后push 的时候 ,如果修改了已经push 的commit,那么需要使用git push -f 区别:git reset commitID;  回退到某个版本。中间的版本都会回退。            git revert commitID; 只将commitID的代码回退。中间的版本不变。且会形成一条

    2024年02月12日
    浏览(48)
  • Git进阶之代码回滚、合并代码、从A分支选择N次提交,合并到B分支【revert、merge、rebase、cherry-pick】

    B站视频地址: https://www.bilibili.com/video/BV1KX4y1a7N9 Git学习文档:https://d9bp4nr5ye.feishu.cn/wiki/PeDPw3mm3iFA36k9td9cVeignsZ 在很长一段时间里,我对Git的操作只限于:提交代码,拉取代码,合并代码。 虽然上面这些操作在日常工作中也足够了,但不会点高级知识不利于装X,今天我们来学

    2024年02月08日
    浏览(78)
  • Git 怎么使用?管理项目?冲突?命令汇总(git rebase、git reverse、git reset、git tag)——保姆及教程(持续更新)

    写在前面: 整理:CS_GUIDER,作者:阮一峰,原文链接:https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 文章一般会优先在个人博客中更新,欢迎少爷们围观我的个人博客: https://wl2o2o.github.io/(点击即可访问) 推荐一个快速练习 Git 的宝藏网站——动图演示 Git 的命令逻辑。

    2024年02月03日
    浏览(48)
  • git merge 和git rebase的区别

    在Git版本控制系统中,有两种方式可以将一个分支的更改合并到另一个分支: git merge 和 git rebase 。虽然它们都可以完成相同的任务,但它们的实现方式有所不同,并且在使用时需要谨慎考虑。 git merge 将两个分支的更改合并到一起,形成一个新的提交节点,称为合并提交。这

    2024年02月12日
    浏览(39)
  • git rebase和merge区别

    merge和rebase 标题上的两个命令:merge和rebase都是用来合并分支的。 这里不解释rebase命令,以及两个命令的原理,详细解释参考这里。 下面的内容主要说的是两者在实际操作中的区别。 1.1 什么是分支 分支就是便于多人在同一项目中的协作开发。比方说:每个人开发不同的功能

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包