git - 我可以在 GIT 中进行部分还原吗

标签 git

是否可以在多文件提交中仅恢复单个文件或文件中的某些更改?

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

最佳答案

通过添加 --no-commit 选项,您可以在不创建新提交的情况下恢复提交。这会将所有还原的文件留在暂存区中。

从那里开始,我将执行混合重置(重置的默认设置)以取消暂存文件,并添加我真正想要的更改。然后,提交(如果您想要多次提交,您可以添加和提交更多文件),最后,检查当前目录以清除因 revert 导致的任何未提交和未暂存的修改。对于示例工作流:

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 commit
git checkout . # This wipes all the undesired reverts still hanging around in the working copy

关于git - 我可以在 GIT 中进行部分还原吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669358/

相关文章:

Github 上显示我一直关闭的问题数量

git - 如何使用 ansible 自动化点文件设置/管理?

django - Elastic Beanstalk 无法更新本地 Git 配置

git - 如何推送 .gitignore 中指定的文件?

Github - 流量 - 奇怪的 "Git clones"统计

git - 什么 git add -A -- 。意思是

windows - Windows Docker git : cd: . git 错误:不是目录

git - SourceTree - 如何 checkout 到远程 repo 分支

git - 我怎样才能对公共(public) stash 一些文件,同时在 Github 存储库中对它们进行版本控制

git rm * 不会一次性删除所有文件