首页 > 解决方案 > Git 从具有历史记录的远程分支签出文件

问题描述

我正在使用合并将一个项目合并到另一个项目,并且在合并时由于冲突而删除了一些文件,我可以从我临时创建的分支中签出文件,但我需要维护历史记录。是否可以签出具有历史记录的文件。

遵循的步骤

git remote add tmpmerge <giturl>
git fetch tmpmerge
git merge tmpmerge/branch --allow-unrelated-histories

在执行上述步骤时,一些文件被删除(10 个文件和总共 327 个文件)。

我想用历史记录从临时分支 tmpmerge/branch 签出文件,我可以使用以下命令签出文件

git checkout tmpmerge/branch -- <filepath>

我需要用 history 签出文件。请让我知道是否有可能做到这一点。提前致谢

标签: git

解决方案


您无法签出某些文件,例如 SVN 或 CVS,但您可以使用git show [commit]:[file]

提交
git show c50ec5a:./src/main/java/com/demo/myx/DemoServiceApplication.java时检索的示例DemoServiceApplication.javac50ec5a

> file_output通过这个结果,您可以将保存结果附加到file_output喜欢git show c50ec5a:./src/main/java/com/demo/myx/DemoServiceApplication.java > file_output

您可以使用它gitk --follow [file]来检索文件的完整历史记录。
例子
gitk --follow ./src/main/java/com/demo/myx/DemoServiceApplication.java


推荐阅读