从分支检出所有文件,而不更改 HEAD 或现有文件

从分支检出所有文件,而不更改 HEAD 或现有文件

将分支中的所有文件检出/合并到工作目录中当前不存在的文件的最佳方法是什么,但不改变存储库状态、HEAD 或现有文件?

使用一行命令可以实现这个吗?

答案1

git checkout可以将路径作为参数,如果给定了路径,则不做HEAD任何处理,而是将这些路径检出到您的工作目录和索引中,因此您只需使用:

git checkout branchname -- .

答案2

看一下git 工作树

git worktree add <checkout_path> <otherBranch>可以将给定的分支检出到给定的路径。

答案3

创建已使用的本地存储库的额外克隆,并在其中签出/合并。这将是真正最简单的方法 (tm)

答案4

git diff --name-status HEAD <otherBranch> | grep -e "^A" | cut -f 2 | xargs git checkout <otherBranch> --

完成工作。

相关内容