zoukankan      html  css  js  c++  java
  • git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解决办法

    最近刚学 git rebase,觉得很牛逼的样子,
    结果今天就被打脸了。

    git pull --rebase

    报错:

    Cannot rebase: You have unstaged changes
    Please commit or stash them.

    第一反应是:
    不!可!能!刚才明明提交了啊!!怎么还有修改!歇斯底里了!

    最后用 git status 一看:
    这里写图片描述

    。。。。

    我错了。。。 接个电话,把删了个文件这件事忘记了 - -。

    总结:

    1.git pull –rebase 理解

    这里写图片描述

    这个命令做了以下内容:
    a.把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的)
    b.然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突
    c.从暂存区把你之前提交的内容取出来,跟拉下来的代码合并

    所以 rebase 在拉代码前要确保你本地工作区是干净的,如果你本地修改的内容没完全 commit 或者 stash,就会 rebase 失败。

    2.还是要听 git 提示的话,要理智,有什么不清楚的,就输入

    git status

    根据人家提示的来,该提交的提交,stash 的 stash。

    3.删除文件后需要 git add -A, 光 git add. 不行,区别如下:

    git add 的几种参数区别

    git add -A 保存所有的修改
    git add . 保存新的添加和修改,但是不包括删除
    git add -u 保存修改和删除,但是不包括新建文件。

  • 相关阅读:
    2.16 C++类与new和delete操作符
    2.15 C++常量指针this
    2.14 C++析构函数
    2.13 C++拷贝构造函数
    2.12 C++ explicit关键字详解
    2.11 C++转型构造函数
    2.10 C++利用构造函数限制对象的创建
    2.9 C++使用默认参数的构造函数
    2.8 C++参数初始化表
    linux 查看进程启动路径
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6147222.html
Copyright © 2011-2022 走看看