2015-06-22 91 views
0

在我當地的環境我做了一些改動,然後:回去提交前和更改推

$ git log --oneline 
2aa8998 Changes 02 
5131bfe Changes 01 
$ git commit -am "Commit 03" 
$ git push 

$ git log --oneline 
9ca6c56 Changes 03 
2aa8998 Changes 02 
5131bfe Changes 01 

但是我發現我犯了一個錯誤,當我返回「git的承諾-am」前提交2aa8998提交03" 與改變,而不犯?

+0

不知道我是否理解這個問題,但'git rebase -i HEAD〜3'可能適合你。 – pfnuesel

+0

你可以(見@pfnuesel),但你真的不應該。永遠不要重新推送提交。 http://stackoverflow.com/questions/2715085/rebasing-and-what-does-one-mean-by-rebasing-pushed-commits –

回答

1

push一邊,reset針對本作。

$ git reset HEAD^ 

將移動當前的局部水頭(master,也許?)在歷史上進一步提升,同時保持本地文件不變。

然後對於push(並且您應該在他的評論中聽@jeremytwfortune),您可以(但不應該)通過強制push將它從遠程移除。

git push將不起作用,但git push -f將。 -f代表強制力,它將應用於可能丟失數據的推送。