首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以在GIT中执行部分还原吗?

我可以在GIT中执行部分还原吗?
EN

Stack Overflow用户
提问于 2011-04-15 04:36:50
回答 4查看 43.8K关注 0票数 176

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-15 04:43:09

您可以通过添加'--no- commit‘选项来恢复提交,而无需创建新的提交。这会将所有恢复的文件保留在临时区域中。从那里,我会执行一个软重置,并添加我真正想要的更改。以下是工作流程示例:

代码语言:javascript
复制
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
票数 227
EN

Stack Overflow用户

发布于 2013-07-16 05:26:53

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

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

代码语言:javascript
复制
git checkout -p COMMIT^ -- FILE_TO_REVERT

Git将提示您重新添加当前版本的文件中缺少的块。您可以使用e创建更改的补丁,然后再将其应用回来。

票数 85
EN

Stack Overflow用户

发布于 2011-04-15 04:49:29

您可以使用git checkout手动检出要还原的文件的旧的、好的内容。例如,如果您想要将my-important-file恢复到它在版本abc123中的版本,您可以这样做

代码语言:javascript
复制
git checkout abc123 -- my-important-file

现在,您有了my-important-file的旧内容,甚至可以根据需要编辑它们,并像往常一样提交,这将恢复他所做的更改。如果只有部分提交需要恢复,那么可以使用git add -p从要提交的补丁中只选择几个块。

票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5669358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档