我忘记在初始提交中添加文件。我如何返回并添加它? [复制]

Posted

技术标签:

【中文标题】我忘记在初始提交中添加文件。我如何返回并添加它? [复制]【英文标题】:I forgot to add a file in the initial commit. How do I go back and add it? [duplicate] 【发布时间】:2016-12-03 21:46:18 【问题描述】:

我忘记添加项目运行所需的设置文件。我已经提交了 14 次。如何返回并将该设置文件添加到初始提交中,以便我的所有提交都具有此文件?

【问题讨论】:

【参考方案1】:

使用 git 1.7 提供的 git rebase 很简单

以下是操作步骤,

    使用git rebase -i HEAD~14(返回 14 次提交)

    标记edit 的提交。 (这让你可以编辑提交)

    保存 rebase 文件,git 将返回 shell 并等待您修复该提交

    使用git add 添加您的设置文件(这会将您之前忘记添加的文件添加到旧提交中)

    使用git commit --amend 修改提交(这会使用新添加的文件为您修改或更改旧提交)

    执行git rebase --continue,它将重写其余的提交以匹配新的提交

希望对你有帮助!

【讨论】:

【参考方案2】:

您可以立即提交,然后使用 rebase 重新排序提交。

但是,这将重写您的存储库的历史记录,因此只有在您的存储库尚未分发给其他人时才真正有用。

例如:

    git add <missing-file> git commit -m "Added missing file." git rebase -i HEAD~14 重新排序提交,这样您丢失的文件提交就在您之前添加未跟踪的文件之后。

在开始之前,请查阅rebase 的文档,因为它是一个强大的命令,但如果使用不当也会导致问题。文档:https://git-scm.com/docs/git-rebase

我希望这会有所帮助。

【讨论】:

以上是关于我忘记在初始提交中添加文件。我如何返回并添加它? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

删除/删除行时如何查找提交?

忽略已经提交到Git存储库的文件[重复]

在 git 中暂存文件?

如何使用ant在svn中提交单个文件

在 git 中提交消息前缀

bootstrap 表单验证FormValidation ajax提交后怎么恢复初始状态