我有一个私人仓库,在 Github 上进行了一次提交——特别是针对 Rails 项目。我的架构文件随着迁移而更改,一位开发人员希望我从提交(和私有仓库)中删除架构更改。我以为我已经弄清楚了,但它似乎并没有坚持,我做错了什么?
git reset 'HEAD^1' db/schema.rb
git commit --amend -v
git push origin <branch-name> -f
看起来您db/schema.rb
在重置之后和提交之前没有暂存所做的更改。因此,在您完成之后git reset 'HEAD^1' db/schema.rb
,使用 暂存文件git add db/schema.rb
,然后执行提交。
或者,您可以将文件重置为以前的状态,并通过使用git reset --soft head^
而不是将其保留在索引中git reset head^
。后者--mixed
默认使用flag,不会暂存改变的状态,而前者会。
您可以在文档中阅读有关git reset
标志的更多信息:
--soft
完全不触及索引文件或工作树(但将头部重置为 ,就像所有模式一样)。正如 git status 所说,这会使您所有更改的文件都“提交更改”。
--mixed
重置索引但不重置工作树(即保留更改的文件但未标记提交)并报告尚未更新的内容。这是默认操作。