如何在GIT中检出单个文件

12

我们已经开发了一个自动部署工具,用于在jboss服务器上部署文件(ear、war和jar)。开发人员会将文件提交到Visual Source Safe中。自动部署工具会自动检出由开发人员指定的最新文件,并使用API在jboss服务器上部署它们。现在我们正在转向GIT来维护我们的源代码和其他部署文件。

Git是否有像VSS一样检查单个文件和路径的选项?


4
在Git中,要撤销对单个文件所做的更改,可以使用以下命令:git checkout -- 这将撤销对该文件所做的所有更改,并还原为最新的提交状态。请注意,此操作不可逆,因此请确保在执行此命令之前已保存您需要保留的更改。另外,如果您只是想取消对文件的暂存更改(而不是工作目录中的更改),则可以使用以下命令:git reset HEAD 这将取消对该文件的暂存更改,并使其返回到未暂存的状态,但不会影响工作目录中的更改。 - Ahmed Kotb
1
肯定之前已经被问过了 :) - c00kiemon5ter
2个回答

15
你可以使用这个。
git checkout <branch-where-the-file-is> -- path/to/file/in/the/other/branch

这将从另一个分支检索文件,到当前分支


7
您可以从Git存储库中检索特定文件。类似于:
git show HEAD:filename.txt

如果您的代码库在另一个目录中,您可以使用GIT_DIR

env GIT_DIR=/path/to/git/repo.git git show HEAD:filename.txt >filename.txt

我已经展示了将输出重定向到文件的过程。

+1并澄清“某个先前的提交”(而不是HEAD):这指的是可以通过gitk轻松找到的SHA1 ID。如果我只需要将该文件“checkout”到临时位置(即不还原),那么我将使用“show”子命令:git show 82e54378856215ef96c5db1ff1160a741b5dcd70:MyProj/proguard/mapping.txt > myproj_mapping.txt - ef2011

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接