git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解决办法

24 篇文章 0 订阅
19 篇文章 0 订阅

git pull --rebase 做了什么? 以及 Cannot rebase: You have unstaged changes 解决办法

2016年09月26日 11:42:28 拭心 阅读数:28702 标签: gitrebase 更多

个人分类: Git

所属专栏: shixin 学 Git

版权声明:转载前请留言获得作者许可,转载后标明作者 张拭心 与 原文链接。大家都是成年人,创作不易,感谢您的支持! https://blog.csdn.net/u011240877/article/details/52668807

最近刚学 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 保存修改和删除,但是不包括新建文件。

 

 

有没有办法一条命令可以快速 rebase?

   leonlh · 2016-04-21 16:52:32 +08:00 · 4787 次点击

这是一个创建于 957 天前的主题,其中的信息可能已经有所发展或是发生改变。

项目用 git 做版本管理,同步代码的时候用的是 git pull --rebase 来保证分支的整洁

然而 rebase 时如果当前有未提交的代码, git 会提示: Cannot rebase: You have unstaged changes.

所以我的操作流程是这样的:

  1. git stash
  2. git pull --rebase
  3. (有冲突解决冲突,然后 git rebase --continue)
  4. git stash pop stash

pull 一个代码,竟然要这么多步骤,简直令人发指。。。 考虑过用 alias 写个命令把这几个命令都加进去,但是如果 rebase 的时候出现冲突就跪了 所以 V2 大神有没有好的方案,能够便捷的 rebase 代码...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值