2017-06-13 148 views
1

我有一個文件,我做了本地更改,然後提交併推送到remote.I實際上意識到,他們是不正確的更改,並希望只有該特定的文件回到其原始狀態(和不撤銷整個提交),將git簽出文件名工作?或者我應該在本地刪除文件並從主服務器中取出?Git文件推送到遠程撤消

+1

不;你只能推提交。 – SLaks

+0

你嘗試過'git checkout HEAD - file.txt'嗎? –

回答

0

這個工作對我來說(也許我的特殊情況,但只是發佈櫃面它可以幫助任何人!) - > 1)撤消從文件 2我的變化)做的主文件和我的文件副本,看看之間的差異沒有區別 3)提交併推送 該文件消失從拉請求文件改變(這是我想要的)

0

您可以通過執行您可能需要的任何其他更改來修復您的提交,然後使用git commit --ammed進行提交。然後你可以使用git push --force origin來「覆蓋」你以前的提交。

請注意,這可能會破壞其他人在此提交之前完成的任何工作,因此您應該非常小心地使用它。

0

你可以在你的工作樹得到的文件恢復到以前的使用狀態類似

git checkout HEAD^ -- path/to/file 

(這是假設文件在最近被打破了承諾。你可以使用的HEAD~2代替HEAD^去返回2提交等)

然後你可以像對待任何其他變化一樣對待它;如果沒有其他需要更改,可以繼續添加/提交/推送。

既然你已經推了原來的提交,我推薦你不是使用--amend。這樣做需要推動力量,這會給其他克隆回購股票的人帶來麻煩。有可能恢復,所以如果你真的想與整個團隊協調略微清理歷史,你可以可以;但我懷疑這是否值得。