64

我想将另一个分支中存在的文件的不同版本加载到我当前的分支中。

git help checkout说:

DESCRIPTION
   Updates files in the working tree to match the version in the index or
   the specified tree. If no paths are given, git checkout will also
   update HEAD to set the specified branch as the current branch.

有没有办法检查所有这些文件,但更新 HEAD?

4

2 回答 2

85

通过提供当前路径结帐,.

git checkout other-branch-name -- .

这个操作类似于在不签出文件的情况下将 HEAD 切换到另一个分支,但只是从“另一个方向”。

正如@김민준 所提到的,这会覆盖任何未提交的更改。如果需要,请记住先将它们存储或提交到某个地方。

于 2013-03-20T23:20:18.467 回答
2

@Kache 的回答类似,但使用较新的git restore命令(需要 Git 2.23 或更高版本):

git restore --source=<other-branch/tag/commit> <pathspec>
# or
git restore -s <other-branch/tag/commit> <pathspec>

# example: to load all files from branch "other"
git restore -s other .

引入这个新命令是为了将“签出分支”和“签出文件”从单个git checkout命令中分离出来。阅读更多:什么是git restore命令

于 2021-06-08T06:05:55.707 回答