我可以用git进行部分恢复吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

在多文件提交中,是否可能只还原单个文件或文件中的某些更改?

我提交了一堆文件。一些提交稍后将保持匿名的人(Jack!!!)将一个文件复制到他的存储库中,并提交了几个文件,覆盖了我所做的一些更改。我想要还原一个文件,被击倒或更好,进入并恢复在该文件中的两个更改。这将必须是一个单独的还原提交,因为它是被提取和推送的。

提问于
用户回答回答于

可以通过添加‘--不提交’选项来恢复提交,而无需创建新的提交。这将使所有恢复的文件留在暂存区域中。从那里开始,我会执行一个软重置,并添加我真正想要的改变。例如:

git revert <sha-of-bad-commit> --no-commit
git reset   // This gets them out of the staging area
<edit bad file to look like it should, if necessary>
git add <bad-file>
git checkout . // This wipes all the undesired reverts still hanging around in the working copy
git commit
用户回答回答于

可以交互地应用旧版本的文件。checkout命令。

例如,如果知道COMMIT删除要添加的代码时,可以运行以下命令:

git checkout -p COMMIT^ -- FILE_TO_REVERT

git将提示你添加当前版本的文件中缺少的块。

扫码关注云+社区