你能从旧的提交中恢复一个文件吗?(Git,bitbucket)



我最近在Bitbucket上创建的PR有一个问题。我不小心复制粘贴了文件的内容,整个内容看起来都是我写的,这破坏了Git的历史,这很重要。这个提交被推送,之后又进行了几次提交,所以取消提交不是这里的解决方案,因为每次提交都有很多更改。

我想知道是否有一种方法可以从旧的提交中只恢复一个旧文件,只进行必要的更改并提交这个特定的文件。

我读过一些关于它的文章,但还没有想出一个安全的解决方案。

提前感谢:(

进行部分还原的首选方法是:

git revert --no-commit <commid-id-to-revert>

在这一点上,来自该恢复的更改将全部暂存。您可以取消暂存任何不希望还原的文件,并修改/重新暂存任何希望调整的文件。(在您的特定情况下,您将取消暂存除要还原的文件之外的所有文件。(请注意,您可能会发生冲突。你可以";"保持电流";对于您不希望恢复的文件上的任何冲突,但对于您希望保留的那些文件上的冲突,您需要以正常方式解决它们。

完成更改后,从命令行继续恢复,以便自动填充提交消息:

git revert --continue

提示:默认情况下,当您恢复提交时,提交消息将类似于:

Revert "Title of commit message being reverted"
This reverts commit <some-commit-id-here>.

我的建议是将该消息,特别是对于部分回复,更改为如下内容:

Revert (Partial) "Title of commit message being reverted"
This (partially) reverts commit <some-commit-id-here>.
A custom explanation of which parts of the commit are being reverted,
and why.

相关内容

最新更新