2012-07-13 157 views
14

我在我的工作站上有一個本地git回購,我推到一個保管箱位置,這樣我就可以通過git pull remote dropbox將它拉下到我的筆記本電腦。Git推後失敗'git reset --hard HEAD〜1'本地回購

昨天我檢查了我的工作站上的一個變更,提交了它並git push dropbox'編輯了它。我沒有從我的筆記本電腦上做git pull,因爲我懷疑我最終會拋棄這個承諾。

今天,我決定把那個犯了,所以我的工作站上我所做的:

git reset --hard HEAD~1 

到目前爲止,一切都很好。現在我想推回到Dropbox,這樣在我的筆記本電腦上我可以合併並承諾從那裏。所以,我的工作站上我想:

git push dropbox 

和Git抱怨說:

! [rejected] master -> master (non-fast-forward) error: failed to push some refs to '\My Dropbox\dev\repos\xcast.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.

如何讓我的worstation和Dropbox回來再次同步?

回答

28

力推應該工作:git push -f dropbox

Git的抱怨,因爲你的遙控器還有額外的承諾,這樣的話你是它背後的歷史方面。

+1

這樣做有沒有負面影響? – 2012-07-13 15:07:43

+0

@Grunch:是的,你在遙控器中失去了提交。如果你與其他人分享了這個提交,歷史可能會有所分歧。 – 2012-07-13 15:08:33

+1

@Grunch是的,只有當你確定沒有人已經拉動變化(或者你是唯一一個有訪問權的人)時,纔會進行強制推送。 – jli 2012-07-13 15:09:21