我可以只还原一个文件,使其恢复为提交前的方式吗?

时间:2019-04-08 04:45:47

标签: git github

另一位开发人员做出了承诺,更改了多个文件,包括我一直在处理的文件。

commit 518cf1750987d789786c7f2f095e4c892fc9bc1f

File: J/Views/CardsTab/CardsTab.xaml

从Github的历史来看,它似乎已经覆盖了我所做的许多更改。

有没有一种方法可以将一个文件恢复到提交前的状态?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用命令git reset --soft commitid对要更改的文件进行软重置: 。之后,您可以使用以下命令将单个文件重置为HEAD。

您可以使用以下命令将特定文件的更改重置为索引:

 git checkout -- CONTRIBUTING.md

以下命令会将文件重置为HEAD,这会将工作副本和索引都更新为HEAD:

git checkout HEAD -- CONTRIBUTING.md

参考: https://git-scm.com/docs/git-checkout

或者我认为可行的另一种方法是:

  1. 对要更改的文件进行更改的软重置提交 编辑
  2. 再次提交您不想编辑的文件,只剩下J/Views/CardsTab/CardsTab.xaml
  3. 将分支重置为上一次提交

这将使您的工作分支保持清洁,并且只保留您所需的更改。

答案 1 :(得分:0)

您可以使用git checkout将工作目录中的文件重置为处于特定提交状态。

如果我理解正确,那么“错误”提交是518cf1750987d789786c7f2f095e4c892fc9bc1f,您需要将文件重置为之前的状态。因此,您要查找的命令行是这样的:

git checkout 518cf1750987d789786c7f2f095e4c892fc9bc1f^ -- J/Views/CardsTab/CardsTab.xaml

的意思是“在518cf1750987d789786c7f2f095e4c892fc9bc1f之前的提交中检索文件J / Views / CardsTab / CardsTab.xaml(^是对提交父级的引用)。

GL!