将分支中的所有文件检出/合并到工作目录中当前不存在的文件的最佳方法是什么,但不改变存储库状态、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> --
完成工作。