git:仅拉取特定文件

6

我正在Win XP上使用TortoiseGit客户端。在一个特定的文件夹中,我有3个修改过的文件,我想抛弃这些修改。换句话说,我想从远程仓库检出这三个文件的最新版本。请注意,在同一个目录中还有另一个修改过的文件,我希望保留原样。我如何只获取这3个文件的最新版本?

谢谢 - Dave

2个回答

8

使用路径名进行结账不会影响 HEAD:

git checkout origin/master -- file1 path/file2 path/file3

假设使用默认的上游远程/分支名称(例如,在git clone之后)
请注意,这三个指定的文件将被无警告覆盖。任何未提交的本地更改到这些指定的文件将会丢失。

这是从我的本地仓库还是远程服务器检出的? - Dave
@Dave:它从你命名的引用中获取文件(在这种情况下,分支 origin/master,在大多数情况下是默认远程分支的正确名称(例如与 git pull 一起使用的分支)。要查看您拥有哪些远程分支,请键入 git branch -r - sehe

2
从项目根目录调用上下文菜单(右键单击,假设您是右撇子;-)。
选择TortoiseGit > 恢复...
恢复对话框将显示您在存储库中修改的所有文件。您可以通过选择复选框并按下“确定”来选择要还原的文件。
这将使所选文件恢复到其原始状态。
然后,您可以使用TortoiseGit上下文菜单中的Pull...操作从共享存储库获取这些文件的最新版本(当然,您可能希望提交/隐藏其他本地更改)。

如果我不想提交/隐藏其他更改怎么办?我只想从远程存储库更新有关的3个文件,并保持其他所有内容不变。 - Dave
@Dave 你也可以通过TortoiseGit菜单来完成这个操作。只需选择相关文件,然后选择Diff操作即可。TortoiseGit会显示不同的文件。你可以双击进入每个文件,查看具体的变动内容。然后你可以接受或拒绝这些变动。 - Sri Sankaran

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