从GIT远程分支获取特定文件

12

我能否从远程仓库中选择性地获取我感兴趣的文件,而不是简单地拉取整个分支?

谢谢。

2个回答

19

“远程分支”只是一个提交指针和相关的打包数据。只需使用git fetch <remote>,如果您想查看远程文件与本地文件之间的差异,则可以使用以下命令:

git diff <local_branch> <remote>/<remote_branch> -- <file>

在许多情况下,这样做的方法可以是:git diff master origin/master -- <file>。您还可以使用git log查看提交差异:

git log <local_branch>..<remote>/<remote_branch> -- <file>

所以...git log master..origin/master -- <file>

最后如果你只想从远程检出特定版本的文件(这并不理想,更好的方法是将远程分支合并到git merge <remote>/<remote_branch>git pull),使用:

git checkout <remote>/<remote_branch> -- <file>

在执行 git checkout origin/master -- *.{sh,rb,pl,R,py,php} 命令更新本地源文件之前,我需要先执行 git fetch 命令。在此之前,我还执行了 git stash 命令,以防止丢失任何未提交的过时文件的本地更改。 - Marcos

-1

不,你必须获取整个分支,但可以选择检出特定的文件。


但是如果我本地有文件X,Y,Z,1,2,3,而X,Y,Z与服务器上的文件存在冲突。因此,我想查看远程分支尝试返回的内容,然后选择仅使用1,2,3。这可能吗? - Martin Blore
MeshMan - 拉取是获取和合并 - 你不需要合并部分,只需要信息,所以你可以执行一个获取操作。 - Nic
1
我可以用刚刚获取下来的数据做什么? - Martin Blore

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