2013-05-17 70 views
0

我有一个私人仓库,在Github上有一个提交 - 专门用于Rails项目。我的模式文件随迁移一起更改,同事开发人员希望我从提交(和专用回购)中删除模式更改。我想我已经想通了,但它似乎并不坚持,我做错了什么?从提交中的一个文件中删除更改

git reset 'HEAD^1' db/schema.rb 
git commit --amend -v 
git push origin <branch-name> -f 

回答

1

它看起来像你没有舞台做复位后,做承诺之前db/schema.rb所做的更改。因此,在执行git reset 'HEAD^1' db/schema.rb之后,将文件与git add db/schema.rb分开,然后执行提交。

或者,您可以使用git reset --soft head^而不是git reset head^将文件重置为之前的状态并将其保持在索引中。后者使用--mixed标志默认情况下,它不会阶段改变的状态,而前者会。

你可以阅读更多关于git reset标志in the documentation

--soft 

不触及索引文件,也没有在所有的工作树(但重置 的头,就像所有的模式做)。这会使所有 更改文件“更改为提交”,因为git状态会将其放入 它。

--mixed 

重置索引而不是工作树(即更改的文件 保留,但不标记为提交)和报告一直没有什么 更新。这是默认操作。

+0

我最终使用'git checkout'HEAD ^'db/schema.rb',但是!我确实需要添加文件。不知道我是如何错过的。谢谢! – Kristian

相关问题