git - 在 git 中恢复以前删除的代码(不一定是单个文件或整个文件)

标签 git dvcs

我不久前从我的代码中删除了一个类 a 功能并提交了删除。该功能作为具有 BDD 样式规范的单个类实现,并且其他一些类在使用该功能时在删除提交中进行了更改。提交是干净的,因为提交中唯一的变化是删除了这个功能。

现在,我改变了主意并决定我只希望恢复该功能,因为我删除了它我做了一大堆更改。 (我知道这是可能的,但我没有保留副本,因为我知道我可以将它从版本控制中移除)。我找到了提交:cb2a6b1 并且当我执行以下操作时可以看到删除的行:git show cb2a6b1。问题是我现在如何将这些行应用回我的代码中?

git diff cb2a6b1 cb2a6b1~1 生成一个 diff,将删除重新构造为添加,但它不会 git apply,主要是因为行号已更改。我可以通过一些手动文本编辑手动将这些内容放回原处,但是否有更自动的替代方法?

最佳答案

试试 git revert cb2a6b1

如果它不能自动找出正确的做法,它应该会为您提供可以手动修复的 merge 冲突。

关于git - 在 git 中恢复以前删除的代码(不一定是单个文件或整个文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1774473/

相关文章:

bash - git push commit 显示错误 : unable to push to unqualified destination

version-control - 我应该如何管理 "reverting"在 mercurial 中使用书签完成的分支?

git - 将当前分支的先前版本 merge 到git中的其他分支

git - 如何更新git提交作者,但修改时保留原始日期?

git - Mercurial 中的分支是否和 Git 一样好用?

github - DVCS(Github、BitBucket等)如何保证私有(private)项目代码的完整性?

git - Repo (+git) 的增值是什么?

mercurial - 限制 Mercurial 存储库访问

git - 新的 git diff 压实启发式方法不起作用

git-diff:不考虑行顺序