Git:将修改后的文件重置为另一个分支中的状态?

hzx*_*zxu 2 git

假设我从develop分支创建了自己的分支,并在几次提交中修改了几次,现在我想将此文件恢复到状态develop(不恢复我的其他更改),是否有一种简单的方法可以做到这一点?(我知道我可以把它结帐develop并在我的分支中覆盖它).

谢谢!

Mar*_*n G 16

你做

git checkout develop -- <path/to/file>
Run Code Online (Sandbox Code Playgroud)


Nou*_*him 6

您将无法“恢复”,因为这是在逐个提交的基础上(而不是逐个文件)完成的。不过有两种选择。您可以选择适合您的。我们假设有问题的文件是quux.c.

  1. git rebase -i从切断分支的位置开始执行操作,然后手动撤消此后每次提交中develop所做的更改。quux.cGit 将重写提交,使其看起来就像被删除quux.c后从未更改过一样develop。
  2. 更简单的路线就是简单地说git show master:quux.c > quux.c。这将覆盖quux.c上文件的版本master。然后添加并提交。这将创建一个额外的“恢复”提交,但它比上面的更简单。

更新

正如其他答案正确表明的那样,尽管效果相同,但git checkout branch -- file比我在这里提到的命令更用户友好。git show