2015-12-28 203 views
2

我對文件做了非常小的改動。git pull --rebase丟失了我的提交

正是這種改變後,一行:

@@ -1,3 +1,3 @@ 
{ 
- "cordova-cli": "5.2.0" 
+ "cordova-cli": "5.4.1" 
} 

我犯下的變化,做了拉底墊

git add taco.json 
git commit -m "updated the cordova cli version" 
git pull --rebase 

現在,當我做一個git登錄我沒有看到我的變化。其他人在另一次提交中做出了完全相同的更改。 git認識到了這一點並取消了我的承諾?

我還是在git reflog看到它。
我會期望得到一個合併衝突,並沒有完全消失我的提交。

下面是git的日誌和git引用日誌輸出:

git log --oneline 
d8cb5c3 removed upload from gulp task 
0ed5d5b updated analytics codeanalytics 
901f724 minor style changes to search buttons 


git reflog 
d8cb5c3 [email protected]{0}: rebase finished: returning to refs/heads/dev 
d8cb5c3 [email protected]{1}: pull --rebase: checkout d8cb5c341c7b08d6a9b43d89198171596d0c4234 
f931b4e [email protected]{2}: commit: updated cordova cli version 

回答

4

如果你的提交是完全一樣的另一承諾,並不會更改(並沒有當然的衝突),然後是。 Git不會應用提交,因爲它什麼也不做。

嘗試「摘櫻桃」這一承諾,你會看到消息:

nothing to commit, working directory clean 
The previous cherry-pick is now empty, possibly due to conflict resolution. 
If you wish to commit it anyway, use: 

git commit --allow-empty 

在底墊中,混帳顯示任何消息,只是下降的承諾。

+0

我認爲這可能是這樣的,但它仍然有點關注,看它只是消失。 – Dismissile

1

衝突是一種情況,當同一行有不同的改變時,但改變是相同的 - 沒有衝突。

要在日誌中進行提交,您必須修改其他提交,但因爲它已經在上游 - 這不是一個好主意,因爲歷史重寫涉及強制推送並可能導致工作丟失