我如何从一个git回购签出一个文件?


当前回答

说文件名是123.txt,这对我来说是有效的:

git checkout --theirs  123.txt

如果文件在目录a中,请确保正确地指定它:

git checkout --theirs  "A/123.txt"

其他回答

这对我很有用。使用git和一些shell命令

git clone --no-checkout --depth 1 git.example.com/project.git && cd project && git show HEAD:path/to/file_you_need > ../file_you_need && cd .. && rm -rf project

如果您编辑了文件的本地版本,并希望恢复到中央服务器上维护的原始版本,可以使用Git扩展轻松实现。

最初文件将被标记为提交,因为它已被修改 在文件树菜单中选择(双击)该文件 列出了单个文件的修订树。 选择树的顶部/HEAD,然后右键单击save as 保存该文件以覆盖修改后的文件本地版本 文件现在有正确的版本,将不再被标记为提交!

简单!

首先使用-n选项和——depth 1选项克隆repo,前者抑制所有文件的默认签出,后者意味着它只获取每个文件的最新修订

git clone -n git://path/to/the_repo.git --depth 1

然后签出你想要的文件,就像这样:

cd the_repo
git checkout HEAD name_of_file

如果你需要一个来自远程Git存储库的特定分支的特定文件,命令如下:

git archive --remote=git://git.example.com/project.git refs/heads/mybranch path/to/myfile |tar xf -

剩下的可以从@VonC的回答中得到:

如果你需要一个来自主分支的特定文件,它是:

git archive --remote=git://git.example.com/project.git HEAD path/to/myfile |tar xf -

如果你需要一个标签的特定文件,它是:

git archive --remote=git://git.example.com/project.git mytag path/to/myfile |tar xf -

说文件名是123.txt,这对我来说是有效的:

git checkout --theirs  123.txt

如果文件在目录a中,请确保正确地指定它:

git checkout --theirs  "A/123.txt"