1. 程式人生 > >git pull --rebase 做了什麼? 以及 Cannot rebase: You have unstaged changes 解決辦法

git pull --rebase 做了什麼? 以及 Cannot rebase: You have unstaged changes 解決辦法

最近剛學 git rebase,覺得很牛逼的樣子, 結果今天就被打臉了。

git pull --rebase
  • 1

報錯:

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

第一反應是: 不!可!能!剛才明明提交了啊!!怎麼還有修改!歇斯底里了!

最後用 git status 一看:這裡寫圖片描述

。。。。

我錯了。。。 接個電話,把刪了個檔案這件事忘記了 - -。

總結:

1.git pull –rebase 理解

這裡寫圖片描述

這個命令做了以下內容: a.把你 commit 到本地倉庫的內容,取出來放到暫存區(stash)(這時你的工作區是乾淨的) b.然後從遠端拉取程式碼到本地,由於工作區是乾淨的,所以不會有衝突 c.從暫存區把你之前提交的內容取出來,跟拉下來的程式碼合併

所以 rebase 在拉程式碼前要確保你本地工作區是乾淨的,如果你本地修改的內容沒完全 commit 或者 stash,就會 rebase 失敗。

2.還是要聽 git 提示的話,要理智,有什麼不清楚的,就輸入

git status
  • 1

根據人家提示的來,該提交的提交,stash 的 stash。

3.刪除檔案後需要 git add -A, 光 git add. 不行,區別如下:

git add 的幾種引數區別

git add -A 儲存所有的修改 git add . 儲存新的新增和修改,但是不包括刪除 git add -u 儲存修改和刪除,但是不包括新建檔案。