从提交中的一个文件中删除更改

时间:2013-05-17 19:15:38

标签: git github commit

我有一个私有仓库,在Github上有一个提交 - 专门用于Rails项目。我的模式文件随迁移一起更改,并且一个开发人员希望我从提交(和私有存储库)中删除模式更改。我以为我已经弄清楚它但似乎没有坚持,我做错了什么?

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

1 个答案:

答案 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
     

重置索引但不重置工作树(即更改的文件是   保留但未标记为提交)并报告未提交的内容   更新。这是默认操作。