2017-06-13 132 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。这样做需要推动力量,这会给其他克隆回购股票的人带来麻烦。有可能恢复,所以如果你真的想与整个团队协调略微清理历史,你可以可以;但我怀疑这是否值得。