2015-12-28 234 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

冲突是一种情况,当同一行有不同的改变时,但改变是相同的 - 没有冲突。

要在日志中进行提交,您必须修改其他提交,但因为它已经在上游 - 这不是一个好主意,因为历史重写涉及强制推送并可能导致工作丢失