假设我从develop
分支创建了自己的分支,并在几次提交中多次修改了fileA
文件,现在我只想将此文件恢复到develop
的状态(而不是回滚其他更改),有没有简单的方法可以实现这一点?(我知道我可以从develop
检出并覆盖我的分支中的文件)。
谢谢!
假设我从develop
分支创建了自己的分支,并在几次提交中多次修改了fileA
文件,现在我只想将此文件恢复到develop
的状态(而不是回滚其他更改),有没有简单的方法可以实现这一点?(我知道我可以从develop
检出并覆盖我的分支中的文件)。
谢谢!
您需要做的是
git checkout develop -- <path/to/file>
quux.c
。
develop
分支时的点开始执行 git rebase -i
命令,然后在每个提交中手动撤销你自那时以来对 quux.c
所做的更改。Git 将重写提交,以便看起来好像自从切换 develop
后就没有更改过 quux.c
。git show master:quux.c > quux.c
命令即可。这将用 master
上的文件版本覆盖 quux.c
文件。然后将其添加并提交。这将创建一个额外的“还原”提交,但比上面的方法更简单。正如其他答案所示,git checkout branch -- file
命令比我在此提到的git show
命令更加用户友好,但效果相同。
quux.c
版本,因此如果你从那里切出一个分支,你将得到那个版本。 - Noufal Ibrahim请查看以下链接:
git show source_branch:path/to/file > file
功能正常,只是需要使用完整路径从仓库的根目录开始,详见SO问题“如何从Git特定修订版本中检索单个文件?”。
你只能获取文件的最新状态。但是,对于git checkout或git show,你可以引用任何想要的修订版本,如SO问题“在git gui中检出文件的修订版本”所示:
$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME
experiment@{yesterday}:app.js # app.js as it was yesterday
experiment^:app.js # app.js on the first commit parent
experiment@{2}:app.js # app.js two commits ago
等等。