我已经在线完成了一些研究,我仍然无法弄清楚恢复使用GIT推送到存储库的单个文件的最佳方法。
我已经完成了Git Revert,但它还原了整个提交。因此,假设您在提交中有2个,3个文件,但您只想恢复1个文件,那将无法正常工作。
有什么想法吗?非常感谢
答案 0 :(得分:2)
首先,还原提交,但不提交还原:git revert --no-commit <SHA>
。然后,使用git reset
取消暂存将还原的所有文件。然后,您可以使用git add <file>
添加所需的文件。执行git commit
,然后清理工作目录以使索引与git checkout .
匹配。
答案 1 :(得分:1)
试试这个:
git reset HEAD~1 -- file1.txt
git checkout -- file1.txt
git commit
git push
git reset
将file1.txt
的索引条目带到HEAD~1
上的状态(先前的提交,即错误更新之前的提交)。它不会修改工作树或当前分支。
git checkout
使file1.txt
的工作树版本与索引中的版本相同(这是我们需要的版本,对吗?)
您无法使用git commit --amend
,因为您要撤消的提交已被推送到远程存储库。这就是你必须创建一个新提交并推送它的原因。