树莓派2 Git服务器执行merge报错:需在工作树中运行
解决Git裸仓库无法执行merge的问题
嗨Marc,这个问题其实挺常见的——你现在操作的是一个裸Git仓库,这类仓库没有工作目录(work tree),而git merge命令必须在带有实际文件目录的非裸仓库里才能运行,这就是你收到报错的原因啦。
为什么会出现这个错误?
咱们在服务器上搭建的Git仓库通常会用git init --bare创建成裸仓库,它只存储Git的版本控制数据(比如分支、提交记录这些核心内容),不会像本地开发仓库那样有实际的文件目录。所以像merge、commit这类需要操作工作文件的命令,在裸仓库里根本没法执行。
正确的操作步骤
你需要在本地的非裸仓库里完成合并,再推回服务器:
- 先把服务器上的仓库克隆到本地,获得带工作目录的仓库:
git clone git@raspberrypi:~/database.git - 进入本地仓库目录,切换到
master分支并合并comments:cd database git checkout master git merge comments - 合并完成后,把更新后的
master分支推回服务器的裸仓库:git push origin master
这样就完成分支合并啦,记住服务器的裸仓库主要负责接收推送,日常的代码操作(合并、修改、提交)都应该在本地仓库进行哦~
内容的提问来源于stack exchange,提问作者HerrTux
相关产品推荐
相关产品推荐

