我有一个私有仓库,在Github上有一个提交 - 专门用于Rails项目。我的模式文件随迁移一起更改,并且一个开发人员希望我从提交(和私有存储库)中删除模式更改。我以为我已经弄清楚它但似乎没有坚持,我做错了什么?
git reset 'HEAD^1' db/schema.rb
git commit --amend -v
git push origin <branch-name> -f
答案 0 :(得分:1)
在执行重置之后和执行提交之前,您似乎没有暂存对db/schema.rb
所做的更改。因此,在执行git reset 'HEAD^1' db/schema.rb
后,使用git add db/schema.rb
暂存文件,然后执行提交。
或者,您可以使用git reset --soft head^
代替git reset head^
将文件重置为之前的状态,并将其保留在索引中。后者默认使用--mixed
标志,不会暂停更改后的状态,而前者则会。{/ p>
您可以详细了解git reset
旗帜in the documentation:
--soft
根本不触摸索引文件或工作树(但重置 头,就像所有模式一样)。这留下了所有 你改变的文件“要提交的更改”,就像git status所说的那样 它
--mixed
重置索引但不重置工作树(即更改的文件是 保留但未标记为提交)并报告未提交的内容 更新。这是默认操作。