【git】reset,revert,fetch,pull,merge,rebase等命令的比较

  1. git fetch和git pull
    git fetch:相当于是从远程获取最新版本到本地,不会自动merge

    git fetch origin master
    git merge origin/master
    

    git pull:相当于是从远程获取最新版本并merge到本地,相当于git fetch 和 git merge

    git pull origin master
    
  2. git merge和git rebase
    git merge:merge master,即将origin中和当前版本进行合并,创建一个新的"合并的提交"(merge commit),但是在log中保存了分支的信息

    git merge origin/master
    

    在这里插入图片描述
    git rebase:把你的当前分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后当前分支更新为最新的"origin"分支,最后把保存的这些补丁应用到当前分支上,原有commit不再进行记录

    $ git checkout mywork
    $ git rebase origin
    

    在这里插入图片描述
    在这里插入图片描述

  3. git reset和git revert
    git reset: git reset的作用是修改HEAD指针的位置,即将HEAD指向的位置改变为之前存在的某个版本,恢复到之前某个提交的版本,且那个版本之后提交的版本都会被删除在这里插入图片描述

    git log(查看版本号)
    git reset --hard 目标版本号(回退到之前版本)
    git push -f(强制推送,本地库HEAD指向的版本比远程库的要旧)
    

    git revert: git revert是用于**“反做”**某一个版本,以达到撤销该版本的修改的目的。
    在这里插入图片描述
    git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。

    git log(查看版本号)
    git revert -n 版本号(反做)
    git commit -m ""(提交)
    git push
    
  4. git stash
    能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

    git stash(保存当前工作进度,会把暂存区和工作区的改动保存起来)
    git stash list(查看当前stash中的内容)
    git stash pop  [–index] [stash_id](将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。先进后出)
    git stash apply  [–index] [stash_id](将堆栈中的内容应用到当前目录,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。)
    git stash drop [stash_id](删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。)
    git stash clear(删除所有存储的进度)
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值