Git分支相关技术问询:获取其他分支项目文件内容及无提交迁移分支改动
Git分支相关技术问询:获取其他分支项目文件内容及无提交迁移分支改动
看起来你想要的是把temp分支的内容同步到当前main分支的工作区里,但又不想切换分支、移动HEAD或者提交任何改动对吧?其实有两个简单的方法可以做到,我帮你梳理一下:
方法一:用
git checkout指定分支和路径
你之前以为git checkout只能切换分支,但其实它还能单独把某个分支的文件拉到当前工作区,完全不会改变当前所在分支或HEAD的位置。执行以下命令即可同步所有文件:git checkout temp -- .如果你只需要同步特定文件或文件夹,把命令里的
.换成具体路径就行,比如git checkout temp -- src/components/Button.vue。
注意:如果当前工作区有未提交的改动,这个操作会直接覆盖它们!所以如果有需要保留的本地改动,先执行git stash暂存,之后用git stash pop就能恢复。方法二:用
git restore从指定分支恢复
你说看了restore的手册没找到对应方法,其实它是支持从其他分支获取内容的,只需要加上--source参数指定目标分支名:git restore --source=temp .这个命令的效果和上面的
checkout完全一致,都是把temp分支的文件内容同步到当前工作区,HEAD依然停留在main分支,也不会产生任何提交。同样要注意,如果有未提交的本地改动,会被覆盖,记得先暂存。
这两个方法都完美匹配你的需求——不用切换分支、不移动HEAD、不产生提交,只是把temp分支的文件内容同步到当前工作区。如果只需要同步个别文件,替换掉命令里的.即可,这样不会影响其他文件的状态。
备注:内容来源于stack exchange,提问作者Yonatan Reicher
相关产品推荐
相关产品推荐

